系统相关
首页 > 系统相关> > nginx – Docker:LetsEncrypt用于开发“无处不在的Https”

nginx – Docker:LetsEncrypt用于开发“无处不在的Https”

作者:互联网

在开发,测试和暂存期间,我们有各种各样的docker服务器作为虚拟机来来去去.最终,此过程中的docker镜像将到达具有明确定义的主机和域名的客户机器.但是,在此之前,所有机器都只是我们的内部网络.在客户部署的环境中,所有’http’通信都是通过HTTPS进行内部或外部的.鉴于此意图,非常希望使用可用/可测试的SSL证书连接所有容器.

许多docker / letsencrypt / nginx教程中的One,two,three以及其他内容描述了如何在最后执行此操作,而不是在开发过程中执行此操作.有谁知道这样的重点设置是否可行?我是否需要使内部最多的docker容器(我们的容纳Tomcat webapp)具有公共域?或者这是完全不切实际的[即使知道这肯定会有很大的帮助!]?如果这种用法成为可能,那么是否有人知道(或有)具体需要做些什么来实现这一功能?

UPDATE

如果从上面不清楚的话.我想发送Docker容器,其中一个可能是letsencrypt / nginx代理.在Docker Hub有很多可供选择.但是,我无法弄清楚如何设置这样的系统进行开发/测试,其中所有机器都在内部网络上.证书可以“测试” – 需要允许HTTPS / TLS,而不是Chrome中的绿色锁定!这将允许大量的测试(即,正确锁定HTTP,关闭TLSv1.0以避免某些漏洞等).

解决方法:

我建议你忘掉Letsencrypt.该服务的价值主张实际上集中在“在浏览器中获得绿色锁定”,您明确表示不需要.

此外,Letsencrypt需要访问您的服务器以验证ACME质询文件是否存在,这意味着是,您需要每个此类服务器都具有可公开访问的域.因此,您需要拥有域并让DNS指向您的特定服务器,这在测试环境中听起来不合需要.

总而言之,我认为您正在尝试使用错误的工具来满足您的需求.尝试使用常规的自签名证书as described in this question.为此,必须将连接客户端设置为不验证证书.

或者您可以将它带到下一级和create your own CA.为此,您需要使所有容器导入该根证书,以便他们信任它.

当然,一旦您将容器/图像投入生产,请不要忘记撤消这些内容并获得真正有效的证书.这就是Letsencrypt有用的时候.

标签:nginx,docker,lets-encrypt
来源: https://codeday.me/bug/20190623/1266262.html