Catalogue
突然发现域名的ssl证书过期了,而且重新申请只有3个月,找了一圈,决定按照这个方法申请 letsencrypt 的证书。
首先参考acme.sh
脚本这个地址的中文说明:https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
登录 远程主机用root 用户安装脚本
1 | curl https://get.acme.sh | sh -s [email protected] |
生成证书的过程中,需要注意如下问题。一定要注意域名和nginx的域名要一致,添加 www.
前缀。否则会一直提示验证失败。
1 | acme.sh --issue -d www.mydomain.com --nginx |
修改域名为Nginx 配置文件里面的域名后,又出现了如下的错误,我的这个问题是因为Nginx 的配置文件里面的把80端口从定向到443端口的配置语句导致的。注释掉这一句就好。rewrite ^(.*)$ https://${server_name}$1 permanent;
1 | acme.sh Invalid status, :Verify error:"error":{ |
注释掉nginx配置文件里面的这一句:
1 | server { |
如果脚本运行成功后会出现 sucess
和 Cert sucess
的提示
修改 /etc/nginx/conf.d/default.conf
,把证书名改为现在需要使用的证书目录和姓名。
1 | ssl_certificate "cert/cert.pem"; |
然后修改证书安装命令的目录。
1 | acme.sh --install-cert -d www.qluoman.top \ |
到这一步,证书应该安装成功。
1 | acme.sh --info -d www.qluoman.top #查看已经安装的证书 |
使用如下的命令查看自动更新是否正确安装
1 | crontab -l |
开启 acme.sh 更新
升级 acme.sh 到最新版 :
1 | acme.sh --upgrade |
如果你不想手动升级, 可以开启自动升级:
1 | acme.sh --upgrade --auto-upgrade |
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
1 | acme.sh --upgrade --auto-upgrade 0 |