Docker+Nginx配置SSL
前提条件
- 购买服务器的服务商开启443端口和服务器已开启443端口(https的默认端口)
- nginx容器已经安装
http_ssl_module
模块(启用SSL功能) - 下面的教程基于一个开源的dockerfile仓库
ssl证书上传至服务器
上传目录:
../../services/nginx/certs/
yml文件配置更改
ports:
# 增加443端口
- "443:443"
volumes:
# 增加SSL证书目录挂载
- ../../services/nginx/certs:/etc/nginx/certs:cached
nginx配置文件更改
default.conf参考
server {
listen 443;
server_name localhost;
root /wwwroot/default/;
index index.php index.html index.htm;
ssl on;
ssl_certificate certs/cert.pem;
ssl_certificate_key certs/cert.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
注意事项:
ssl_certificate certs/cert.pem; ssl_certificate_key certs/cert.key;
这两项填写的证书路径必须是相对路径(相对于/etc/nginx/ 的路径)
let the world have no hard-to-write code ^-^