用 git 来 对letsencrypt 证书管理

在做 https 的时候,使用了 letsencrypt 的证书,letsencrypt 的证书 90 天更新一次,正常情况下,只有一个域名就很方便处理,写一个 crontab 就搞定了。

letsencrypt 出了泛域名后,泛域名只支持 1 级的匹配。当有多个子域名使用的时候,管理起来就很难受。

所幸的是,acme.sh 支持 deploy_hook 来自行调用一个 shell 脚本。所以用不到10行的代码,做了一个利用 git 来管理域名证书。

  1. 首先在acme.sh里面配置一个 git 的地址。

  2. 申请泛域名时同时申请泛域名的主域名

  3. hook 提交按照域名提交到不同的分支

  4. 线上对应的域名只需要配置一个 crontab 来定时拉 git ,重启服务。

思路虽然简单粗暴,这样做的好处是可以很清楚的在git上面看到证书的更新,同时更新也可以利用 gitlab 的 hook 通知到 钉钉。

阅读更多

使用acme.sh配置letsencrypt证书

越来越多的人开始意识到 https 的重要性了,letsencrypt 证书免费而且兼容性好。在一般情况下都足够用。如果需要更高级别的证书可以考虑付费的。

首先,我这里的需求是前端有两台 web 服务器,前端有一台作为均衡负载。所以常规的使用域名作为验证的方法是不可行的,在看 acme.sh 时发现了它支持使用 DNS 作为验证。满足了我的要求。

阅读更多