一、申请https证书
腾讯云SSL证书,免费1年(亚洲诚信品牌免费型DV版SSL证书)
二、下载证书文件
1_admin.huagenjiaoyu.top_bundle.crt和2_admin.huagenjiaoyu.top.key
三、更改docker挂载配置文件(配置nginx虚拟机)
server {
listen 443 ssl; # 1.1版本后这样写
server_name admin.huagenjiaoyu.top; #填写绑定证书的域名
ssl_certificate /data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt; # 指定证书的位置,绝对路径
ssl_certificate_key /data/docker_conf/nginx/ssl/2_admin.huagenjiaoyu.top.key; # 绝对路径,同上
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://hgedu;
}
location ~ ^/hgedufiles {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
报错:cannot load certificate "/data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/data/docker_conf/nginx/ssl/1_admin.huagenjiaoyu.top_bundle.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file) 容器中的nginx需要到容器中的路径查找证书文件,需要添加挂载目录 /etc/nginx是容器中的数据根目录
四、docker启动命令
docker run --name zlz_nginx_ssl -p 80:80 -p 443:443 -d -v /data/docker_conf/nginx/conf/nginx-ssl.conf:/etc/nginx/nginx.conf -v /data/docker_conf/nginx/logs:/var/log/nginx -v /data/docker_conf/nginx/html:/usr/share/nginx/html -v /data/docker_conf/nginx/ssl:/data/docker_conf/nginx/ssl nginx