嘟嘟社区

使用 GCP 公共 CA 签发证书初体验


上个月 30 日,Google Cloud 在其博客发表文章 Automate Public Certificates Lifecycle Management via RFC 8555 (ACME),原文见 https://cloud.google.com/blog/products/identity-security/automate-public-certificate-lifecycle-management-via–acme-client-api

文章大意是:我们,Google Cloud 推出了自动化的公共 CA 管理程序(流程),大家可以通过 ACME 协议来申请 Google Trust Services 的证书了。这套系统实现了大规模的公共证书的部署云云。

简而言之,对诸位站长而言,“免费” SSL 证书多了一种选择。目前 GCP 公共证书和 Let’s Encrypt 一样,有效期最长 90 天。前者的其他特性列举如下:

1. 支持多域名及通配符;(与 Let’s Encrypt 相同)
2. 仅支持 DNS 验证和文件验证,不支持邮件验证;(与 Let’s Encrypt 相同)
3. 支持 IP 地址,但是仅允许该 IP 地址块的所有者进行验证;(Let’s Encrypt 暂不支持)
4. 不支持 IDN (International Domain Name, 国际化域名,使用 Punycode 进行编码,形如 xn--1.xn--2).(Let’s Encrypt 已经支持)
5. 若 CSR 为 ECC,则仅叶子证书(最终用户证书)为 ECC.(Let’s Encrypt 已经支持全链 ECC)

欲使用此服务,需要一个 Google Cloud Platform 账号,并填写表单 https://docs.google.com/forms/d/1Euhflb5CXpuLik8czElhyAloTZJZobar4086dmlPqXA 以申请内测权限。

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

填写后大概半天内即可收到邮件,大概长这样:

内附一个指向 Confidential material 的链接,具体内容在此不表。

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

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

键入 gcloud beta publicca external-account-keys create 获取相关凭据

会返回如下内容:

  1. Created an external account key
  2. [b64MacKey: sWxMMqW5DAa4Cxkm7EXKr6l1HpzGi2B2Kw7qxRHyAOII1LsnsVpWkKuSKcPOhmKZ
  3. keyId: 1dde669efbd34e10b71297227b18ac28]

复制代码

本地安装 Certbot,键入如下内容:

  1. certbot register
  2.     –email "EMAIL_ADDRESS"
  3.     –no-eff-email
  4.     –server "SERVER"
  5.     –eab-kid "EAB_KID"
  6.     –eab-hmac-key "EAB_HMAC_KEY"

复制代码

其中,SERVER 为 https://dv.acme-v02.api.pki.goog/directory (用于生产)或
https://dv.acme-v02.test-api.pki.goog/directory (用于测试)
EAB_KID 为 keyId,EAB_HMAC_KEY 为 b64MacKey。如图:

新账户会被 Certbot 录为 letsencrypt,请无视。

键入以下内容:

  1. certbot certonly
  2.     –manual
  3.     –preferred-challenges "dns-01"
  4.     –server "https://dv.acme-v02.api.pki.goog/directory"
  5.     –domains "iks.moe"

复制代码

dns-01 可为 tls-sni-01, http, dns 任一,iks.moe 替换为欲申请证书的域名,用西文逗号隔开两个 FQDN

按要求验证后即可得到证书。证书存储在 /etc/letsencrypt/live/域名/ 目录下,可以供各类软件使用。

ocsp.pki.goog 有国内节点,访客体验还是很不错的。


终。

1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了你的Key,其他人可能有幾乎申請到你申請過的證書
  1. Created an external account key
  2. [b64MacKey: sWxMMqW5DxOhmKZxx
  3. keyId: 1ddasdxxx

复制代码

2. 由於pki.google網域無法備案,其數據中心位於美國,大陸網路是被阻斷的。GTS的ACME需要翻牆

感谢分享!绑定
和Google国官网一个根和path吗
收藏了,稍后试试