前言
- 今天突然想把博客再部署一套到自己的服务器,看到自己部署完毕后浏览弹出连接不安全,这哪能忍,速速搞定它!
需要的资源
- 你得拥有一个域名
- 一台自己的服务器
- 服务器安装docker
注册域名证书
填入你的域名创建证书
填入你的邮箱,这里我是选择离线生成需要下载一个秘钥管理器,如果不想下载则选择浏览器生成,再次点击创建。
接下来会给你两个值:TXT记录、记录值。
你需要将这两个值分别填入你的域名解析中:
保存以后点击检测一下,如果提示3个绿色的成功,就可以点击验证。
得到两个文件。
将证书上传至服务器
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
禁用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
|
搞定!