灌水王 发表于 2024-6-3 04:53:29

使用 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 获取相关凭据

会返回如下内容:Created an external account key

本地安装 Certbot,键入如下内容:certbot register \    --email "EMAIL_ADDRESS" \    --no-eff-email \    --server "SERVER" \    --eab-kid "EAB_KID" \    --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,请无视。

键入以下内容:certbot certonly \    --manual \    --preferred-challenges "dns-01" \    --server "https://dv.acme-v02.api.pki.goog/directory" \    --domains "iks.moe"

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



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



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




终。

灌水王 发表于 2024-6-3 04:53:54

目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请

灌水王 发表于 2024-6-3 04:54:32

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

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

chinanms 发表于 2024-6-3 04:55:23

破论坛 技术帖都没人顶了https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

灌水王 发表于 2024-6-3 04:55:53

1. SNI 由客户端发送,即:
访问 www.example.com 时,浏览器会向服务器发送 SNI: www.example.com,服务器根据 SNI 发送证书公钥;
2. Cloudflare Inc CA 的证书 commonName 中的 sni.cloudflaressl.com 并非 SNI,根据上条概念。
3. 综上所述,部分地区出现的 Cloudflare 证书阻断并非「SNI 阻断」,因为阻断并未发生在传递 SNI 时,而是发生在传递 SNI 后;
4. 通过 ACME 协议请求的证书需要验证每一个 DNSAltName 的所有权,且 CA 不得变更除顺序外的内容,因此 commonName 和 DNSAltName 中不会有 Google 字样再次出现。

灌水王 发表于 2024-6-3 04:56:19

三个月的。。还是用TrustAsia的一年好了,cloudflare的还有十五年。。

dongdonglang 发表于 2024-6-3 04:57:09

Google CA 的我试过了,他的 key 只能一台机器用,第二台机器就会报错

所以得每个机器申请一个 keyhttps://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

灌水王 发表于 2024-6-3 04:57:15

谢谢大佬,已经报名占坑了。
有什么好的管理证书自动更新的方法吗,比如多台服务器,更新证书之后怎么同步呢

cordy 发表于 2024-6-3 04:57:29

看不懂,等一个一键脚本集成:lol

hooksmith 发表于 2024-6-3 04:58:21

建议使用引号,并检查其它参数是否正确

灌水王 发表于 2024-6-3 04:59:03

ssl付费证书的时代已经快过去了。。

大家都在忙着留客户。

let's 和各大浏览器厂商(尤其是google) 在逐步革它们的命。

当时估计没有人想过,let's会引发这样的状况。。。

灌水王 发表于 2024-6-3 04:59:45

既然搭配 Cloudflare 使用,则最终用户证书是 Cloudflare Inc CA 颁发的,自然受信任,而 Cloudflare 15 年证书为源服务器证书,本不用于与最终用户通信,无论如何是不能跟公共证书比较的

灌水王 发表于 2024-6-3 04:59:59

感谢分享!绑定

灌水王 发表于 2024-6-3 05:00:50

和Google国官网一个根和path吗

灌水王 发表于 2024-6-3 05:00:56

收藏了,稍后试试

疯子 发表于 2024-6-3 05:01:06

凭据是我重新随机生成的

灌水王 发表于 2024-6-3 05:02:06

提到过,api, crls 和顶域都是被墙的,但是 ocsp.pki.goog 在大陆提供服务

灌水王 发表于 2024-6-3 05:02:56

感谢分享

灌水王 发表于 2024-6-3 05:03:05

感谢分享,大佬牛

weiyunxu 发表于 2024-6-3 05:03:40

根相同,但 Google 网站的中间证书和这个不同
页: [1]
查看完整版本: 使用 GCP 公共 CA 签发证书初体验