acme.sh - 极力推荐的 Let's Encrypt 工具

为什么使用它?

Let's Encrypt 证书申请实测签发 Let's Encrypt ECC 证书 这两篇博文里,我小小地研究了 Let's Encrypt 证书的申请和使用。而刚发现的 acme.sh 这个 Shell 脚本则极大地方便了我们的使用,使签发证书顺畅无比。因此,在任何情况下,都应该使用 acme.sh 来签发和更新证书。比官方的全家桶高到不知道哪里去了。

acme.sh 安装十分方便,只需要一行命令:

curl https://get.acme.sh | sh

安装好后就可以签发证书了,支持多种验证方式: Standalone, Apache, Webroot 和 DNS 方式。其中我使用的是 DNS 方式,理由是方便配置,且不会影响到现有的服务。

选择验证方式

我使用的 DNS 服务商是 Cloudflare,acme.sh 支持对它的全自动配置和验证。使用起来也很方便:

  • 在 Cloudflare 网站上获取自己的 API Key,记下后运行如下命令:
export CF_Key="your_api_key"
export CF_Email="you@example.com"

搞定。

签发 ECC 证书

这个脚本同时支持签发 ECC 证书,依然十分简单:

acme.sh --issue --dns dns_cf -d yoursite1.com -d yoursite2.com --keylength ec-384

这是我的情况(使用 Cloudflare DNS 自动配置、签发 ECDSA P-384 椭圆曲线证书、证书包含两个域名),根据情况不同还需要使用者自行微调。

等一段时间就签发完毕了,签发好的证书存在 ~/.acme.sh/yoursite.com 下。这个脚本替你完成了所有的工作,接下来只要导入到 ApacheNginx 里就可以了。

真的超级方便啊。

Bibliography

https://github.com/Neilpang/acme.sh