Docker与Nginx - Https无法正常工作

时间:2016-10-23 19:03:53

标签: ssl nginx docker

我使用Docker相对较新。我用Nginx,PHP和Mysql设置了一个Docker容器,localy。我可以从VM(http://192.168.99.100/)访问IP,一切正常。

然而,当我转到https://192.168.99.100/时,Chrome会笑脸并说出ERR_CONNECTION_RESET

如何让Nginx为环境启用SSL证书?

我使用的是Windows 10,而VM使用的是Virtualbox,不是 Hyper-V

2 个答案:

答案 0 :(得分:2)

https适用于域名而非 ip ,因此您可以组织https://example.org访问权限,但无法组织对https://123.45.67.89的ssl访问权限

作为可能的解决方案,如果您拥有域example.org的证书(自签名或真实证书),您可以:

  1. 添加到主机文件(Windows C:\ Windows \ System32 \ drivers \ etc \ hosts或Linux / etc / hosts)行如左 192.168.99.100 example.org

  2. 然后,将这些ssl文件添加到nginx配置并运行您的应用程序。

  3. 现在,如果您尝试访问https://example.org,您将获得与192.168.99.100的安全连接

答案 1 :(得分:1)

你需要,

vhost

server {
       listen 443 ssl;
       listen 80;
       ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;
       ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
       ssl_certificate /etc/ssl/certs/site.com.crt;
       ssl_certificate_key /etc/ssl/private/site.com.key;
       ssl_session_cache shared:SSL:10m;
       ssl_session_timeout 10m;
}

nginx.conf

map $scheme $fastcgi_https {
default off;
https on;
}

希望这有帮助。