前言
- 今天突然想把博客再部署一套到自己的服务器,看到自己部署完毕后浏览弹出连接不安全,这哪能忍,速速搞定它!
![连接不安全](/2020/03/记录docker容器中nginx配置ssl/image-20200313113407989.png)
需要的资源
- 你得拥有一个域名
- 一台自己的服务器
- 服务器安装docker
注册域名证书
填入你的域名创建证书
![创建SSL证书](/2020/03/记录docker容器中nginx配置ssl/image-20200313114018822.png)
填入你的邮箱,这里我是选择离线生成需要下载一个秘钥管理器,如果不想下载则选择浏览器生成,再次点击创建。
![选择证书类型](/2020/03/记录docker容器中nginx配置ssl/image-20200313114438649.png)
接下来会给你两个值:TXT记录、记录值。![DNS验证](/2020/03/记录docker容器中nginx配置ssl/image-20200313114626538.png)
你需要将这两个值分别填入你的域名解析中:![解析](/2020/03/记录docker容器中nginx配置ssl/image-20200313114850486.png)
保存以后点击检测一下,如果提示3个绿色的成功,就可以点击验证。![检测](/2020/03/记录docker容器中nginx配置ssl/image-20200313115010323.png)
得到两个文件。
![得到证书](/2020/03/记录docker容器中nginx配置ssl/image-20200313115143673.png)
将证书上传至服务器
cd 证书所在目录
scp hetonghao.cn_chain.crt {用户名}@{服务器地址}:{目录}
scp hetonghao.cn_key.key {用户名}@{服务器地址}:{目录}
|
登录服务器创建nginx容器
docker pull nginx
docker run --name nginx -d -p 80:80 -p 443:443 -v /root/webApp:/usr/share/nginx/html -v /var/log/nginx:/var/log/nginx -v /etc/nginx/cert:/etc/nginx/cert -v /etc/localtime:/etc/localtime -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:latest
|
-p 443:443
-v /root/webApp:/usr/share/nginx/html
-v /etc/nginx/cert:/etc/nginx/cert
-v /var/log/nginx:/var/log/nginx
-v /etc/localtime:/etc/localtime
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf
|
将证书文件移动至挂载的证书目录
-v /etc/nginx/cert:/etc/nginx/cert
也就是/etc/nginx/cert
cd 证书目录 mv hetonghao.cn_chain.crt /etc/nginx/cert mv hetonghao.cn_key.key /etc/nginx/cert
|
配置Nginx
三种访问机制
vim /etc/nginx/nginx.conf/default.conf
|
同时支持Http和Https
![配置证书地址](/2020/03/记录docker容器中nginx配置ssl/image-20200313135258012.png)
禁用Http
server { listen 443 ssl; server_name localhost; }
|
http 自动跳转 https
server{ listen 80; server_name hetonghao.cn; return 301 https://$server_name$request_uri; } server { listen 443 ssl; ssl_certificate /etc/nginx/cert/hetonghao.cn_chain.crt; ssl_certificate_key /etc/nginx/cert/hetonghao.cn_key.key; }
|
重新加载Nginx配置文件
docker exec -it nginx service nginx reload
docker restart nginx
|
搞定!
![安全连接](/2020/03/记录docker容器中nginx配置ssl/image-20200313141708652.png)