使用 acme.sh 申请 Google 的免费 SSL 证书

上个月 30 日,Google Cloud 在其博客发表文章 Automate Public Certificates Lifecycle Management via RFC 8555 (ACME) 发布了测试版的自动化公共 CA 管理程序。
简而言之就是 Google 也开放了类似于 Let’s Encrypt 的免费证书申请。并且和 Google 各项服务使用相同的根证书。

优劣分析

  1. 可以设置颁发证书的有效期;(最长 90 天,最短 1 天)
  2. 支持多域名及通配符;(与 Let’s Encrypt 相同)
  3. 仅支持 DNS 验证和文件验证,不支持邮件验证;(与 Let’s Encrypt 相同)
  4. 支持 IP 地址,但是仅允许该 IP 地址块的所有者进行验证;(Let’s Encrypt 暂不支持)
  5. 不支持 IDN (International Domain Name, 国际化域名,使用 Punycode 进行编码,形如 xn–1.xn–2).(Let’s Encrypt 已经支持)
  6. 目前签发的证书,即使选择 ECC 类型,证书链的中级证书也是 RSA 的(Let’s Encrypt 已经支持全链 ECC)
  7. ocsp.pki.goog 有国内节点,访客体验还是很不错的。
  8. 目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请

申请准备

需要准备一个 Google Cloud Platform 的账号

然后去 点击这里 填写表单申请

表单里有一项 Google Cloud Project ID,可以通过 https://console.cloud.google.com/apis/dashboard 得到

Google Cloud Project ID

获取密钥

填写后大概半天内即可收到一封主题为 Welcome to Google Cloud Certificate Manager, Public CA 的邮件。

邮件内容

等收到后进入到
https://console.cloud.google.com/apis/library/publicca.googleapis.com?project=test-1823685
(test-1823685 为前文提到的 Project ID),单击“启用”,等他圈圈转完。

启用

然后单击右上角的“激活 Cloud Shell”,打开 Google Cloud Shell

Google Cloud Shell

键入

1
gcloud beta publicca external-account-keys create

(可能会弹出授权,授权选允许)

获取相关凭据,会返回如下一组密钥

1
2
3
Created an external account key
[b64MacKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
keyId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]

EAB 密钥使用一次后自动失效;如果没有使用,7 天后也会自动失效。使用 EAB 密钥注册的 ACME 帐户没有过期时间(对证书续期没有影响)。

开始申请

先更新 acme.sh 到最新版

1
acme.sh --upgrade

然后运行 acme.sh 注册 ACME 账户

1
2
3
acme.sh  --register-account  -m  [email protected] --server google \
--eab-kid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--eab-hmac-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后就直接用 acme.sh 签发证书,选择 Server 为 Google

1
2
3
4
acme.sh -f --server google --issue \
-d cuojue.org \
-w "/home/wwwroot/cuojue.org" \
--reloadcmd "/etc/init.d/nginx reload"

想要 ECC 证书可以指定 key 类型

1
2
3
4
acme.sh -f --server google --issue \
-d cuojue.org --keylength ec-256 \
-w "/home/wwwroot/cuojue.org" \
--reloadcmd "/etc/init.d/nginx reload"

证书

证书

参考:

  1. https://hostloc.com/thread-993780-1-1.html
  2. https://cloud.google.com/public-certificate-authority/docs/quickstart (无权限账号会显示 404 错误)
  3. https://github.com/acmesh-official/acme.sh/wiki/Google-Public-CA

使用 acme.sh 申请 Google 的免费 SSL 证书
https://cuojue.org/read/google-gts-free-ssl.html
作者
WeiCN
发布于
2022年4月2日
更新于
2022年4月2日
许可协议