3月30日,Google开放了自家SSL公共证书申请,其公共证书目前还处于内测阶段。
可在 Google Cloud 博客上看到 Automate Public Certificates Lifecycle Management via RFC 8555 (ACME)
优劣分析
- 可以设置颁发证书的有效期;(最长 90 天,最短 1 天)
- 支持多域名及通配符;(与 Let’s Encrypt 相同)
- 仅支持 DNS 验证和文件验证,不支持邮件验证;(与 Let’s Encrypt 相同)
- 支持 IP 地址,但是仅允许该 IP 地址块的所有者进行验证;(Let’s Encrypt 暂不支持)
- 不支持 IDN (International Domain Name, 国际化域名,使用 Punycode 进行编码,形如 xn–1.xn–2).(Let’s Encrypt 已经支持)
- 目前签发的证书,即使选择 ECC 类型,证书链的中级证书也是 RSA 的(Let’s Encrypt 已经支持全链 ECC)
- ocsp.pki.goog 有国内节点,访客体验还是很不错的。
- 目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请
acme.sh 支持的CA中, Google SSL证书与其他免费SSL证书之间的比较
Compare the features supported by the known CAsCA 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 HiCA180Paid10 (1 if Wildcard)YesPaidPaidNoPaid
全文签发以
非DNS API ECC泛域名证书
为例
申请准备
需要准备一个 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
键入
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"
证书
证书
参考:
- https://hostloc.com/thread-993780-1-1.html
- https://cloud.google.com/public-certificate-authority/docs/quickstart (无权限账号会显示 404 错误)
- https://github.com/acmesh-official/acme.sh/wiki/Google-Public-CA