写在开头
由于一年期免费证书现在已经基本绝迹,最省时省力的方案莫过于acme.sh自动部署更新。虽然我的目前大多数服务以及跑在了无服务器系统上,但通过一个自动程序来随时获得有效的网站证书,还是有一定必要性。 若像我一样均采用Cloudflare的服务,可以在Cloudflare的仪表盘中生成15年有效期的自签证书,可通过Cloudflare系统的https验证,无需部署公共CA证书,公共CA证书系统会帮助自动申请,目前的提供商是GTS和Sectigo。 以下简单记录下在申请过程中的一些步骤和注意点。 ACME
安装并设置
安装acme.sh
设置alias以便快速启动
测试是否安装成功
成功返回版本即为安装成功
设置默认申请邮箱
请将 [email protected] 替换为你要设置的邮箱地址,设置完成后,后续的证书申请都会默认使用该邮箱。
选择申请证书的机构
根据官方文档,目前acme支持五家SSL证书发行商,分别是:
- ~ZeroSSL.com CA~(默认)
- 支持多域名&泛域名,有效期90天
- 上级CA:Sectigo(USERTrust ECC Certification Authority)
- Letsencrypt.org CA
- 支持多域名&泛域名,有效期90天
- 上级CA:ISRG(ISRG Root X1)
- ~BuyPass.com CA~
- 支持多域名(单证书内最多5个),有效期180天
- 上级CA:Buypass(Buypass Class 3 Root CA)
- ~SSL.com CA~
- 仅支持单域名,需注册,有效期90天
- 上级CA:SSL.com(SSL.com Root Certification Authority RSA R2)
- ~Google.com Public CA~
- 支持多域名&泛域名,有效期90天
- 上级CA:GTS(GTS Root R4) 综上建议选择默认的ZeroSSL/Let’s Encrypt/GTS,自动续签且支持多域名&泛域名,一次申请一劳永逸。
证书机构切换
其中—server后表示要切换到的机构,可选项为:
- zerossl/letsencrypt/buypass/google/ssl.com
以下申请步骤以ZeroSSL为例,使用Cloudflare DNS API。
配置Cloudflare DNS API
获取API密钥步骤: 1.登录到 Cloudflare Dashboard。 2.转到 My Profile。 3.在 API Tokens 下,创建一个带有 DNS 编辑权限的 API 令牌,或使用 Global API Key。 填入下列代码中,终端运行。
同时也支持多家DNS服务商,详见Github。
申请证书
申请examle.com及*.example.com 两个域名的证书,可根据需要自行修改,新增域名在后面继续加入-d 域名即可。
若需指定证书机构,加入—server选项即可。
安装证书
根据自己网站服务器版本选择相应的代码安装,以下以Apache为例:
以上部分的域名及路径请手动修改,路径在上一步申请完成证书后会反馈。
设置定期更新
后续即可自动完成证书更新,无需人为干预。
以上,就是acme.sh申请配置证书的全过程,附最终效果参考。

最终效果