手动更新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环境自动更新证书的详细资料,也许一下的内容能帮到你

 

除特别注明外,本站内容皆为 咸鱼先锋 原创,可自由引用,但请注明来源和链接。
https://xyuxf.com/archives/1482
欢迎关注 咸鱼先锋 (微信号公众号:xyuxf),获取干货推送
THE END
分享
二维码
< <上一篇
下一篇>>