笔记
服务器
https证书

以下为两种证书申请方式,推荐第二种

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-概述,设置为完全/完全(严格),否则无法解析