使用 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 有国内节点,访客体验还是很不错的。
终。 目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请 1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了你的Key,其他人可能有幾乎申請到你申請過的證書
Created an external account key
2. 由於pki.google網域無法備案,其數據中心位於美國,大陸網路是被阻斷的。GTS的ACME需要翻牆 破论坛 技术帖都没人顶了https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif 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 字样再次出现。 三个月的。。还是用TrustAsia的一年好了,cloudflare的还有十五年。。 Google CA 的我试过了,他的 key 只能一台机器用,第二台机器就会报错
所以得每个机器申请一个 keyhttps://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif 谢谢大佬,已经报名占坑了。
有什么好的管理证书自动更新的方法吗,比如多台服务器,更新证书之后怎么同步呢 看不懂,等一个一键脚本集成:lol 建议使用引号,并检查其它参数是否正确 ssl付费证书的时代已经快过去了。。
大家都在忙着留客户。
let's 和各大浏览器厂商(尤其是google) 在逐步革它们的命。
当时估计没有人想过,let's会引发这样的状况。。。 既然搭配 Cloudflare 使用,则最终用户证书是 Cloudflare Inc CA 颁发的,自然受信任,而 Cloudflare 15 年证书为源服务器证书,本不用于与最终用户通信,无论如何是不能跟公共证书比较的 感谢分享!绑定 和Google国官网一个根和path吗 收藏了,稍后试试 凭据是我重新随机生成的 提到过,api, crls 和顶域都是被墙的,但是 ocsp.pki.goog 在大陆提供服务 感谢分享 感谢分享,大佬牛 根相同,但 Google 网站的中间证书和这个不同
页:
[1]