我的架构如下
letsencrypt 注册账号后进行申请,加密方式选择 RSA
,然后验证,如图
然后把相关内容填写到域名解析那里
如果通过验证,那么你会下载一些文件。
1 2 3 4 5 6
| certificate.crt # 服务端证书 chain.crt # 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书 detail.txt fullchain.crt # 包括了 certificate.crt 和 chain.crt 的内容 private.pem # 证书的私钥 public.pem
|
将文件上传到服务器上,比如,我就是 /home/ubuntu/https
然后,nginx
开始配置
1 2 3 4 5 6 7 8 9 10
| server { listen 80; ## Your website name goes here. server_name thlm.bond www.thlm.bond; listen 443 ssl default_server; listen [::]:443 ssl default_server;#新增这两个 ssl_certificate /home/ubuntu/https/fullchain.crt; # 路径和你上传保持一致 ssl_certificate_key /home/ubuntu/https/private.pem; # 路径和你上传保持一致 ... }
|
上面的搭建可知,我的配置文件是 /etc/nginx/sites-available/wordpress.conf
。
但是,我上面的配置,如果想要强制把 http
转为 https
,总会出错。
ps: 证书要同时选择泛域名和根域名。