以下为两种证书申请方式,推荐第二种
certbot
安装certbot包
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
可能会遇到urllib3 不兼容的情况,需要降级或移除。参考 (opens in a new tab)
添加DNS解析
服务商后台添加DNS解析
申请证书
sudo certbot --nginx -d {domin}
配置nginx转发端口
编辑/etc/nginx/sites-available/defalt 文件
server {
server_name {domin};
location / {
proxy_pass http://localhost:{port};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate {pem_path} # managed by Certbot
ssl_certificate_key {key_path}; # managed by Certbot
}
-
需要填写domin, 如test.domin.com,以及端口
-
pem和key的位置一般是certbot自动填写
-
注意要打开443端口
-
测试nginx配置是否生效
nginx -t
如果successful,则可以直接reload或者restart服务,否则需要检查配置
service nginx reload
cloudflare
更推荐的方式是使用cloudflare的DNS解析和代理方式,可以代理一级域名,子域名不用再申请证书,隐藏服务器ip,另外直接支持证书15年(自动续期)
DNS解析更改
服务商后台更改解析设置,更改为Cloudflare解析的DNS
bart.ns.cloudflare.com
kay.ns.cloudflare.com
cloudflare解析
进入cloudflare (opens in a new tab),添加站点
申请证书
- 进入站点设置-DNS,设置域名domin.com、*.domin.com、www.domin.com, (opens in a new tab) 解析到服务器IP
- 进入SSL/TLS-源服务器-创建证书,主机名填上述域名。key要记住,后面打开是看不见的
- 保存证书到服务器(直接创建一个位置比如/etc/cloudflare)
设置证书
- 编辑/etc/nginx/sites-available/defalt 文件, ssl_certificate和ssl_certificate_key设置为保存的证书位置
- 配置Nginx转发
设置加密模式
- 点击SSL/TLS-概述,设置为完全/完全(严格),否则无法解析