Saltstack 自动批量更新 SSL 证书
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
咸鱼之前分享了两篇文章,介绍了如何通过脚本自动检测SSL证书的过期时间,并强调了发现证书过期后需要及时更换。对于拥有多服务器的域名,手动更新证书效率低下,因此可以借助自动化运维工具实现批量更新,如ansible、puppet以及咸鱼主要使用的saltstack。
咸鱼接下来介绍如何通过saltstack批量更新SSL证书。首先,在salt-master主目录下创建一个新目录,用于存放SSL证书和脚本。接下来,编写两个saltstack状态脚本:update.sls用于更新证书,rollback.sls用于回滚证书。之所以需要回滚操作,是因为之前更新后证书链不完整导致证书失效的情况。
update.sls脚本包含三个主要部分:证书备份、证书更新和Nginx重启。首先定义了相关变量,包括域名、SSL证书存放目录和备份目录。然后,通过cmd.run模块执行shell命令,创建备份目录并备份当前证书。接着,使用file.recurse模块将salt-master上的证书复制到服务器指定目录。最后,执行Nginx的配置检查并重启服务。
rollback.sls脚本包含两个部分:证书回滚和Nginx重启。首先设置变量year,尝试从Salt Pillar获取或通过shell命令得到前一年的年份。然后,通过cmd.run模块执行shell命令,将备份目录中的证书复制到SSL目录以实现回滚。最后,对Nginx服务进行配置检查并重启。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)