3月30日,Google开放了自家SSL公共证书申请,其公共证书目前还处于内测阶段。
可在 Google Cloud 博客上看到 Automate Public Certificates Lifecycle Management via RFC 8555 (ACME)
Google SSL 特性
- 免费(白嫖真香)
- 比Let’s Encrypt R3/E1 证书链兼容性强了 114514 倍
- 支持 多域名 及 泛域名
- 支持 IP 证书(仅允许 IP Block 的所有者验证)
- 支持 ECC证书
目前仅叶证书是 ECDSA - 不支持 IDN (Punycode 编码,如中文域名)
- Google CA 的 ACME API 在大陆无法访问
- 其他
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 |
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 |
全文签发以 非DNS API ECC泛域名证书
为例
获取相关凭据
Google Cloud CLI
前提:需要有 Google Cloud Platform (GCP) 账户
Google Cloud Web Shell
申请相关权限
点击此处 申请证书内测Api权限(请自行想办法打开.jpg)其中电子邮件填写你的GCP账户,Google Cloud Project ID可在 cloud.google.com 里找,左上角项目切换点开就能得到。
坐和放宽,过几天就能收到邮件回复。
目前已结束内测,不需要再申请内测资格。
获取 EAB 密钥凭据
打开 console.cloud.google.com/apis/library/publicca.googleapis.com 左上角项目选择对应的项目,或链接后加上 /?project=你的Project ID
直接打开,并点击"启用"。
点击右上角的"激活Cloud Shell",成功授权后在Cloud Shell
输入
gcloud publicca external-account-keys create
即可获取 EAB 密钥ID 和 EAB HMAC keyId
, b64MacKey
Created an external account key
[b64MacKey: xxxxxx
keyId: xxxxxx]
7 天内未使用 EAB 密钥的话,密钥会失效
Shell
在你的服务器上安装 gcloud cli
:
### Debian 9+ or Ubuntu 18.04+ ###
sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates gnupg curl
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get update && sudo apt-get install google-cloud-cli
执行 gcloud init
初始化操作后,参考上方 Web Shell 即可食用
Google Domains
前提:需要在Google Domains托管域名
本方法适用于账号未注册GCP的人食用。
登录 Google Domains,随意选择一个域名后,点击安全 - 高级安全功能 - Google Trust Services,只需要点击获取EAB密钥
即可获得对应凭据。
btw: Google Domains 已被谷歌关门部斩杀
申请签发证书
- 安装acme.sh
如果你正在使用如 Oneinstack, LNMP.org, bt.cn, 1Panel 等服务器面板或管理脚本的话,对应程序可能已安装或集成了acme.sh。
curl https://get.acme.sh | sh -s
- 注册账号
acme.sh --register-account \
--server https://dv.acme-v02.api.pki.goog/directory \
--server google -m [Your Mail]] \
--eab-kid [Your keyId] \
--eab-hmac-key [Your b64MacKey]
- 签发证书
acme.sh --server google --issue -d [Your Domain] \
--keylength ec-256 --force \
--dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
- 验证证书
在域名解析服务商(我用的是华为云解析)添加对应TXT Record,添加后验证证书并颁发。
acme.sh --server google --renew -d [Your Domain] \
--ecc --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
- 安装证书
acme.sh --installcert -d [Your Domain] --ecc \
--key-file /usr/local/nginx/conf/ssl/[Your Private Cert Path] \
--fullchain-file /usr/local/nginx/conf/ssl/[Your Cert Path] \
--reloadcmd "service nginx force-reload"
题外
申请的acme.sh服务器API dv.acme-v02.api.pki.goog
在大陆是被墙的,所以要在国内服务器申请需自己想办法解决
OCSP 地址是 ocsp.pki.goog
,在大陆解析为谷翔IP段(AS24424),但恐怖的是似乎少了什么东西(逃
其实谷歌在国内正常运作的域名都没有备案号,依然正常解析使用国内服务器,毕竟谷歌中国业务包括Datacenter
上次修改於 2023-12-13