ACME.SH 签发Google SSL证书

3月30日,Google开放了自家SSL公共证书申请,其公共证书目前还处于内测阶段。

可在 Google Cloud 博客上看到 Automate Public Certificates Lifecycle Management via RFC 8555 (ACME)


优劣分析

  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 的用户请暂缓申请

    acme.sh 支持的CA中, Google SSL证书与其他免费SSL证书之间的比较
    Compare the features supported by the known CAs

    CA MaxLifetime ECC Domain Count Wildcard IPv4 IPv6 NotAfter IDN
    Let’s Encrypt 90 Yes 100 Yes No No No Yes
    ZeroSSL 90 Yes 100 Yes No No Yes Yes
    Google 90 Yes 100 Yes No No Yes No
    Buypass 180 Yes 5 Paid No No No Yes
    SSL.com 90 Yes 2 Paid No No No Yes
    HiCA 180 Paid 10 (1 if Wildcard) Yes Paid Paid No Paid

    全文签发以 非DNS API ECC泛域名证书 为例

申请准备

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

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

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

google-gts-free-ssl-1

Google Cloud Project ID

 

获取密钥

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

google-gts-free-ssl-2

邮件内容

 

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

google-gts-free-ssl-3

启用

 

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

google-gts-free-ssl-4

Google Cloud Shell

 

键入

gcloud beta publicca external-account-keys create

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

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

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

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

开始申请

如果您正在使用如Oneinstack、LNMP.org、bt.cn、1Panel等服务器控制器或管理脚本的话,对应程序可能已安装或集成了 acme.sh。

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

先更新 acme.sh 到最新版

acme.sh --upgrade

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

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

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

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

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

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

google-gts-free-ssl-5

证书

 

google-gts-free-ssl-6

证书

参考:

  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

Related Post

发表回复