手动更新LNMP创建的SSL证书
最近发现一台VPS上搭建的网站SSL证书过期了,访问HTTPS链接会提示不安全。检查了一下,服务器用的环境是LNMP环境包,这个证书是使用LNMP 1.5中的lnmp dnsssl命令自动创建部署的Let's Encrypt免费证书。Let's Encrypt证书有效期是3个月,如果使用了域名DNS服务商提供的API可以自动续期,不过这台机子似乎由于某些原因自动更新失败了。
因为之前相关的参数都配置好了,所以手动更新一下就好。不过查了一番后,发现LNMP 1.5虽然支持定期自动更新证书,但是并没有自动更新失败后手动更新的命令。不过发现了一点,LNMP从1.5版本开始,处理SSL证书部分是通过acme.sh脚本实现。
acme.sh简单的说是可以用来从Let's Encrypt生成免费的证书的程序(脚本),并且如果之前配置过了证书和API等,可以直接“一键生成”新的证书,所以直接手动运行acme.sh来更新证书就好。
需要注意的一点是,如果是自己手动安装的acme.sh,其默认路径是”~/acme.sh/”,而LNMP环境是把文件放在了” /usr/local/acme.sh/”下。关于这一点,可以在LNMP的相关页面和Shell下的提示看到。
操作命令
知道了情况,接下来要做的就简单了,先在命令行下进入acme.sh所在目录,命令如下
cd /usr/local/acme.sh/
执行ls命令能看到目录下的文件
接着执行如下命令,手动更新域名的证书
acme.sh --renew -d 域名
注意这个命令针对的是之前已经创建过证书的域名;“域名”处替换成要更新SSL证书的域名,需要和当时在LNMP中添加证书时使用的域名相同
如果没有意外的话,acme.sh就会开始工作了,自动利用API更新DNS记录,然后申请签发新的SSL证书,成功的话会提示“Cert success.”,并且全部完成后会自动重启nginx使新证书生效(需要等待至少两分钟以上)
OK,到此就成功的手动更新了SSL证书
当然还有一件事需要强调一下,这个手动更新证书的方法是针对在LNMP环境中,曾经使用过DNS服务商提供的API来自动创建SSL证书的情况。如果你原来添加证书的方式不支持自动续期,则还是需要在LNMP中手动重新创建证书。
附:相关链接
如果你需要关于VPS环境自动更新证书的详细资料,也许一下的内容能帮到你
- acme.sh中文说明页面:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
- LNMP官方的Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程:https://www.lnmp.org/faq/letsencrypt-wildcard-ssl.html
- 来自挖站否的acme.sh独立使用教程:https://wzfou.com/letsencrypt/
https://xyuxf.com/archives/1482
欢迎关注 咸鱼先锋 (微信号公众号:xyuxf),获取干货推送
共有 0 条评论