全球主机交流论坛

标题: 使用 GCP 公共 CA 签发证书初体验 [打印本页]

作者: iks    时间: 2022-4-2 03:44
标题: 使用 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 有国内节点,访客体验还是很不错的。




终。

作者: breakmyheart    时间: 2022-4-2 03:47
感谢分享!绑定
作者: 帝玺SSL    时间: 2022-4-2 04:05
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需要翻牆

作者: kvm.net    时间: 2022-4-2 04:29
和Google国官网一个根和path吗
作者: xhemj    时间: 2022-4-2 06:37
收藏了,稍后试试
作者: iks    时间: 2022-4-2 08:42
帝玺SSL 发表于 2022-4-2 04:05
1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了 ...


凭据是我重新随机生成的
作者: iks    时间: 2022-4-2 08:48
帝玺SSL 发表于 2022-4-2 04:05
1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了 ...

提到过,api, crls 和顶域都是被墙的,但是 ocsp.pki.goog 在大陆提供服务
作者: abmfdtn    时间: 2022-4-2 09:01
感谢分享
作者: diu!    时间: 2022-4-2 09:15
感谢分享,大佬牛
作者: iks    时间: 2022-4-2 09:26
kvm.net 发表于 2022-4-2 04:29
和Google国官网一个根和path吗

根相同,但 Google 网站的中间证书和这个不同
作者: 看我签名.    时间: 2022-4-2 09:30
破论坛 技术帖都没人顶了
作者: xayle    时间: 2022-4-2 09:43
已申请, acme.sh 添加了google acme 支持
作者: 花落无声    时间: 2022-4-2 09:46
感谢分享,收藏。。。
作者: 自来光    时间: 2022-4-2 10:01
开干 已经申请内测
作者: nerlnsqy    时间: 2022-4-2 10:04
mark 帮顶 感谢分享
作者: Ticifer    时间: 2022-4-2 10:20
这么快都用上了
作者: walx1589    时间: 2022-4-2 10:21
技术贴顶
作者: iks    时间: 2022-4-2 10:23
目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请
作者: 小沨    时间: 2022-4-2 10:58
厉害的大佬
作者: abbyu    时间: 2022-4-2 11:03
三个月的。。还是用TrustAsia的一年好了,cloudflare的还有十五年。。
作者: 丶Silently    时间: 2022-4-2 11:13
申请了
作者: iks    时间: 2022-4-2 11:13
abbyu 发表于 2022-4-2 11:03
三个月的。。还是用TrustAsia的一年好了,cloudflare的还有十五年。。

1. TrustAsia 只免费单域名,且不支持 ACME 自动化;
2. 再强调一遍,Cloudflare 15 年的不受信任,,,
作者: laoxong    时间: 2022-4-2 11:14
感谢分享~
作者: adef_1    时间: 2022-4-2 11:14
学习一下先
作者: 肤白貌美天然呆    时间: 2022-4-2 11:23
多久才能申请通过啊
作者: abbyu    时间: 2022-4-2 11:36
iks 发表于 2022-4-2 11:13
1. TrustAsia 只免费单域名,且不支持 ACME 自动化;
2. 再强调一遍,Cloudflare 15 年的不受信任,,, ...

看个人需求吧,单域名够我用了。
既然都用了cloudflare的证书,肯定是搭配cloudflare使用,目前没有发现哪个浏览器显示不受信任。
作者: iks    时间: 2022-4-2 11:42
abbyu 发表于 2022-4-2 11:36
看个人需求吧,单域名够我用了。
既然都用了cloudflare的证书,肯定是搭配cloudflare使用,目前没有发现 ...

既然搭配 Cloudflare 使用,则最终用户证书是 Cloudflare Inc CA 颁发的,自然受信任,而 Cloudflare 15 年证书为源服务器证书,本不用于与最终用户通信,无论如何是不能跟公共证书比较的
作者: rem    时间: 2022-4-2 11:51
虽然看不太懂,还是要给大佬点赞
作者: iks    时间: 2022-4-2 12:15
肤白貌美天然呆 发表于 2022-4-2 11:23
多久才能申请通过啊

半天 (等美国上班
作者: 肤白貌美天然呆    时间: 2022-4-2 17:53
iks 发表于 2022-4-2 12:15
半天 (等美国上班

感谢大佬分享 顺利签下来了
作者: DogeLee2    时间: 2022-4-2 19:24
本帖最后由 DogeLee2 于 2022-4-2 19:29 编辑
iks 发表于 2022-4-2 11:13
1. TrustAsia 只免费单域名,且不支持 ACME 自动化;
2. 再强调一遍,Cloudflare 15 年的不受信任,,, ...


trust asia也支持acme和三个月泛域名了,不过得自己cname过去
https://blog.freessl.cn/acme-quick-start/
作者: iks    时间: 2022-4-2 19:30
DogeLee2 发表于 2022-4-2 19:24
trust asia也支持acme和三个月泛域名了,不过得自己cname过去
https://blog.freessl.cn/acme-quick-start ...

我孤陋寡闻了,不过这个还要在后台手动加白,算是半自动化吧
作者: DogeLee2    时间: 2022-4-2 19:34
iks 发表于 2022-4-2 19:30
我孤陋寡闻了,不过这个还要在后台手动加白,算是半自动化吧

这个最近才出,一直用acme.sh的zerossl或者let's,全自动的
最近怎么了,怎么个家都在出免费的域名证书
作者: flyqie    时间: 2022-4-2 19:39
DogeLee2 发表于 2022-4-2 19:34
这个最近才出,一直用acme.sh的zerossl或者let's,全自动的
最近怎么了,怎么个家都在出免费的域名证书 ...

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

大家都在忙着留客户。

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

当时估计没有人想过,let's会引发这样的状况。。。
作者: DogeLee2    时间: 2022-4-2 19:42
本帖最后由 DogeLee2 于 2022-4-2 19:44 编辑
flyqie 发表于 2022-4-2 19:39
ssl付费证书的时代已经快过去了。。

大家都在忙着留客户。


最近的trust asia和谷歌的真的香,国内ocsp加上比let's兼容性好,真的太香了
作者: flyqie    时间: 2022-4-2 19:48
本帖最后由 flyqie 于 2022-4-2 19:49 编辑
DogeLee2 发表于 2022-4-2 19:42
最近的trust asia和谷歌的真的香,国内ocsp加上比let's兼容性好,真的太香了 ...


let's 的目标其实已经快达到了,它就是个带头的。

当目标达到的时候,它怎么样其实就不是太重要了。

总会有新的、更有优势的商家试图取代它的市场份额,很正常,这是个好事。


作者: DogeLee2    时间: 2022-4-2 19:51
flyqie 发表于 2022-4-2 19:48
let's 的目标其实已经快达到了,它就是个带头的。

当目标达到的时候,它怎么样其实就不是太重要了。

是的,期待更多免费的
作者: 御坂    时间: 2022-4-2 20:22
帝玺SSL 发表于 2022-4-2 04:05
1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了 ...

是的,但是ocsp.pki.goog是直通Google中国(谷翔)的,Google中国数据中心没有北岸审查设备,未北岸的dl.Google.com,ocsp.pki.goog,没记错的话,是直接ok的

作者: 丶Silently    时间: 2022-4-3 01:05
提示错误 certbot: error: unrecognized arguments: --eab-kid 12xxxxxxxxxxxxxxxx38 --eab-hmac-key jBbxxxxxxxxxxxxL
作者: iks    时间: 2022-4-3 01:09
丶Silently 发表于 2022-4-3 01:05
提示错误 certbot: error: unrecognized arguments: --eab-kid 12xxxxxxxxxxxxxxxx38 --eab-hmac-key jBbxx ...

建议使用引号,并检查其它参数是否正确
作者: 何处不惹尘埃    时间: 2022-4-3 05:40
abbyu 发表于 2022-4-2 11:03
三个月的。。还是用TrustAsia的一年好了,cloudflare的还有十五年。。

cloudflare 的那个也是一年, 你说的15 年的是 CF 的自签名证书, 仅对 CF 有效的
作者: 御坂    时间: 2022-4-3 10:41
帝玺SSL 发表于 2022-4-2 04:05
1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了 ...

给开的后门吧,毕竟这些内容是可被接受的。原则上的确违法了,机房的运营许可也会受到牵连。
作者: flyqie    时间: 2022-4-3 11:11
本帖最后由 flyqie 于 2022-4-3 11:16 编辑
御坂 发表于 2022-4-3 10:41
给开的后门吧,毕竟这些内容是可被接受的。原则上的确违法了,机房的运营许可也会受到牵连。 ...


谈原则确实没啥用。。不靠原则的事情多了去了。

这个其实理论上来说没人会管,它不属于面向普通人直接公开提供服务的类型。

这么说好像也不对,dl.google是个例外,因为他还承担了chrome的下载。
作者: Binance.com    时间: 2022-4-3 11:25
看不懂,等一个一键脚本集成
作者: iks    时间: 2022-4-3 11:58
Binance.com 发表于 2022-4-3 11:25
看不懂,等一个一键脚本集成

已经是一键脚本了
作者: 御坂    时间: 2022-4-3 15:51
flyqie 发表于 2022-4-3 11:11
谈原则确实没啥用。。不靠原则的事情多了去了。

这个其实理论上来说没人会管,它不属于面向普通人直接公 ...

对,chrome下载就在这。但是很好奇,为什么下载,翻译都可以在国内,云同步却不行
作者: flyqie    时间: 2022-4-3 16:08
本帖最后由 flyqie 于 2022-4-3 17:38 编辑
御坂 发表于 2022-4-3 15:51
对,chrome下载就在这。但是很好奇,为什么下载,翻译都可以在国内,云同步却不行 ...


作者: adrce    时间: 2022-4-3 16:11
google的ssl证书?sni握手的时候应该会被block吧
作者: iks    时间: 2022-4-3 16:15
本帖最后由 iks 于 2022-4-3 16:18 编辑
adrce 发表于 2022-4-3 16:11
google的ssl证书?sni握手的时候应该会被block吧


请知悉以下信息:

1. SNI 由客户端发送;
2. SNI 是 TLS 握手过程其中之一环节的其中之一内容,并不是叫「sni握手」;
3. SNI 发送的是目标域名,和 Google 无关;
4. 并非所有 Google 域名均会被 SNI Reset;
5. ocsp.pki.goog 在大陆。
作者: adrce    时间: 2022-4-3 16:19
iks 发表于 2022-4-3 16:15
请知悉以下信息:

1. SNI 由客户端发送;

1:我知道啊,不然我说block
2:我以为是和cloudflare一样用的自家sni
作者: iks    时间: 2022-4-3 16:27
adrce 发表于 2022-4-3 16:19
1:我知道啊,不然我说block
2:我以为是和cloudflare一样用的自家sni


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 字样再次出现。
作者: imzhifu    时间: 2022-4-3 16:28
谢谢大佬,已经报名占坑了。
有什么好的管理证书自动更新的方法吗,比如多台服务器,更新证书之后怎么同步呢
作者: iks    时间: 2022-4-3 16:30
imzhifu 发表于 2022-4-3 16:28
谢谢大佬,已经报名占坑了。
有什么好的管理证书自动更新的方法吗,比如多台服务器,更新证书之后怎么同步 ...

请参考 https://loc.wget.at/thread-980579-1-1.html
作者: adrce    时间: 2022-4-3 16:31
本帖最后由 adrce 于 2022-4-3 16:34 编辑
iks 发表于 2022-4-3 16:27
1. SNI 由客户端发送,即:
访问 www.example.com 时,浏览器会向服务器发送 SNI: www.example.com,服务 ...


你其实可以只回复“不会”就行了
总之先点个赞
作者: 大猫    时间: 2022-4-3 16:42
根证书交叉了globalsign吗
作者: iks    时间: 2022-4-3 16:42
adrce 发表于 2022-4-3 16:31
你其实可以只回复“不会”就行了
总之先点个赞

哈哈哈哈哈

作者: iks    时间: 2022-4-3 16:45
大猫 发表于 2022-4-3 16:42
根证书交叉了globalsign吗


交叉了
完整的链为:

GlobalSign Root CA - R1 1998-2028
GTS Root R1 2020-2028
GTS CA 1P5 2020-2027
作者: 大猫    时间: 2022-4-3 16:46
iks 发表于 2022-4-3 16:45
交叉了
完整的链为:

交叉了就兼容性还可以
作者: kuso    时间: 2022-4-3 20:06
不錯用~
使用dehydrated這個acme clinet端也可以簽發證書
作者: kalagxw    时间: 2022-4-6 22:27
#注册账户 需要先获批资格
acme.sh --register-account -m [email protected] --server google \
        --eab-kid xxxxxx \
        --eab-hmac-key xxxxxxxx

#设置默认CA
acme.sh --set-default-ca --server google

#签发证书
acme.sh --issue --dns dns_cf -d '*.moeking.me' -d moeking.me --days 60 -k ec-256

#-k表示指定密钥长度 --days表示有效期
作者: Showfom    时间: 2022-4-6 22:48
帝玺SSL 发表于 2022-4-2 04:05
1. 請LZ移除此內容,根據RFC8555標準,CA是可以針對同一個訂戶重簽FQDN進行 pre-validated的,如果你洩漏了 ...

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

所以得每个机器申请一个 key
作者: wangjianjilei    时间: 2022-4-7 00:34
除了泛域名其他没什么太大意义,别的厂都有,只能说是大势所趋下的竞争者
作者: 耗子尾汁    时间: 2022-4-7 00:36
申请了好几天 都没短信
作者: 丶Silently    时间: 2022-4-7 09:07
Showfom 发表于 2022-4-6 22:48
Google CA 的我试过了,他的 key 只能一台机器用,第二台机器就会报错

所以得每个机器申请一个 key ...

不是。同一台机器我删除了acme和隐藏文件,用同一个id和key也是报错的
作者: Showfom    时间: 2022-4-7 17:47
丶Silently 发表于 2022-4-7 09:07
不是。同一台机器我删除了acme和隐藏文件,用同一个id和key也是报错的

那就是只能用一次,第二次就不行了
作者: 丶Silently    时间: 2022-4-7 18:55
Showfom 发表于 2022-4-7 17:47
那就是只能用一次,第二次就不行了

估计是这样,我后面重新用命令去生成才可以,还有一种可能不知道属不属实,每次我都是换邮箱绑定的,不知道是不是跟当时输入的注册邮箱走
作者: 丶Silently    时间: 2022-4-7 21:57
本帖最后由 丶Silently 于 2022-4-7 22:00 编辑
Showfom 发表于 2022-4-7 17:47
那就是只能用一次,第二次就不行了


官方文档说明了  绑定邮箱的

您只能使用 EAB 密钥注册一个 ACME 帐户。使用 EAB 密钥注册 ACME 帐户后,EAB 密钥将变为无效,您无法重复使用它。如果要注册多个 ACME 帐户,则必须为每个帐户请求唯一的 EAB 密钥。


而且申请密钥后7天内没使用 会自动失效
您必须在获取 EAB 密钥后的 7 天内使用该密钥。如果您在 7 天内未使用 EAB 密钥,则该密钥将失效。使用 EAB 密钥注册的 ACME 帐户没有过期时间。

作者: sunkeinfo    时间: 2022-4-7 22:47
AWS SSL manager 真诚邀请大佬研究一下!!
作者: xiaoti    时间: 2022-4-7 23:25
好帖,绑定

作者: iks    时间: 2022-4-7 23:28
sunkeinfo 发表于 2022-4-7 22:47
AWS SSL manager 真诚邀请大佬研究一下!!

AWS Certificate Manager 不提供私钥提取功能,其证书只能在 AWS 服务中使用
作者: 气味    时间: 2022-4-28 18:56
不明觉厉
作者: 提莫    时间: 2022-5-22 01:39
这个报错是哪里出问题了
  1. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2. Please read the Terms of Service at https://pki.goog/GTS-SA.pdf. You must agree
  3. in order to register with the ACME server. Do you agree?
  4. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  5. (Y)es/(N)o: y
  6. Unable to register an account with ACME server. Error returned by the ACME server: External Account Binding JWS verification failed
  7. Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
复制代码





欢迎光临 全球主机交流论坛 (https://loc.wget.at/) Powered by Discuz! X3.4