vps shadowrocket
我自己域名的SSL证书都是使用的Lets Encrypt,不但免费而且使用Certbot申请也特别方便快速。之前都是申请单域名的证书,在每个需要的服务器上分别单独申请。
开始需要证书的服务少还好,后来越来越多了,自己的一个小网站、NextCloud服务器、OpenVPNvps shadowrocket、家里的路由器后台、OpenMediaVault等,这样的话在每个机器上都得申请一次,太繁琐。而Lets Encrypt支持泛域名申请,那么我们就可以在一台服务器上申请然后同步到其他服务器上。
于是我抽空这两天简单做了一个Lets Encrypt证书自动续租及其他服务器自动同步的程序。服务运行模式为客户端-服务器模式,代码使用Python3开发。
主动式(相对于客户端而言):该模式就是客户端自动请求服务端,如果发现证书已经变动则下载证书。可以将客户端脚本加入crontab,让脚本定时检查服务端证书的变化,并获取。这种方式相对于订阅模式缺乏实时性,但也影响不大,Lets Encrypt证书续租一次三个月有效期,而只能提前30天续租,只要客户端更新及时,不会逾期也,可以定时任务设置为每天运行。
订阅模式:该模式讲究实时性,只要服务端续租成功将马上将证书同步到已经订阅服务的客户端服务器上。客户端订阅的时候会将服务端的SSH公钥注入到本地,已方便服务端免密码同步证书文件。服务端免密同步使用Rsync。客户端也需要加入Crontab来不断订阅,因为订阅的有效期为60天。
该项目是一个Lets Encrypt证书续租及服务器间同步程序,目的是为泛域名证书在一台服务器上申请,其他需要证书的服务器自动同步。
在项目下创建whitelist.txt以启用在白名单功能,将允许访问的ip一行一个写入文件内。删除该文件则所有ip均可访问。
订阅后,服务端续租成功后会自动将证书同步到客户端服务器,讲求实时性。订阅有效期为60天。须在60天内再次订阅,逾期服务端将不会同步。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。