
本文原创于Cestlavie Blog|原文链接
最近谷歌开放了自家的 GTS CA(Google Trust Services),谷歌作为全球大厂那不得好好嫖一下!目前该服务进入了 Public Review 阶段,不再需要申请内测资格,而且支持 acme.sh 快速申请,那不就是嫖他的好日子来了吗!
GTS SSL 证书的特点是
支持 IP 地址块持有者申请 IP 地址证书
根 CA 为 GlobalSign,根 CA 的支持性和兼容性比 Let's Encrypt 好
支持安全性和性能更好的ECC 证书
支持多域名、泛域名证书申请(例如*.cestlavie.moe)
有效期为90 天
支持的 ACME 验证方式为TLS-ALPN-01、HTTP-01、和 DNS-01
暂不支持邮箱验证方式申请
暂不支持以国际化域名编码的域名
打开shell.cloud.google.com,输入以下代码
$ gcloud beta publicca external-account-keys create #创建凭据 回显为
$ gcloud beta publicca external-account-keys create API [publicca.googleapis.com] not enabled on project [<projectid>]. Would you like to enable and retry (this will take a few minutes)? (y/N)? y #允许创建 publica API Enabling service [publicca.googleapis.com] on project [<projectid>]... Operation "operations/acat.p2-<projectid>-<uuid>" finished successfully. Created an external account key [b64MacKey: <hmac_key> keyId: <keyid>] 保存好输出的<hmac_key>和<keyid>,接下来要用
acme.shcurl https://get.acme.sh | sh -s # 请确保已安装 curl 显示Install success!即为安装成功
acme.sh --set-default-ca --server google #切换默认 CA 为 Google acme.sh --server https://dv.acme-v02.api.pki.goog/directory \ --register-account --accountemail <Your_Email> --eab-kid <keyid> --eab-hmac-key <hmac_key> # 使用刚刚获取凭据注册账号 acme.sh --issue --dns -d yourdomain.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please 然后根据回显中
Add the following TXT record: Domain: '_acme-challenge.yourdomain.com' TXT value: '<TXT_value>' 设置 DNS 记录,完成后输入
acme.sh --renew -d yourdomain.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please 完成证书申请
显示Cert success即为申请成功
可以在~/.acme.sh/yourdomain.com/下获取证书
(注:这里默认使用了 Cloudflare 来演示自动申请证书,详细的支持列表及申请方法可以在这里找到)
首先获取你的Global API Key,可在此处获取
然后在终端中输入
export CF_Key='<YourGlobalAPIKey>' export CF_Email="<YourEmail>" 接下来申请证书,输入
acme.sh --issue --dns dns_cf -d yourdomain.com #单域名 acme.sh --issue --dns dns_cf -d *.yourdomain.com #泛域名 acme.sh --issue --dns dns_cf -d sub1.yourdomain.com -d sub2.yourdomain.com #多域名 acme.sh --issue --dns dns_cf -d yourdomain.com --ecc #ECC 证书 看到回显Cert success即为申请成功,可以在~/.acme.sh/yourdomain.com/下获取证书
~/.acme.sh/account.conf用于续期目的文中部分信息已做脱敏处理

1 ab 2023-01-20 19:06:33 +08:00 国内 VPS 可以吗? |
2 jonathon523 OP @ab 可以的,在国内有申请节点,但是需要先魔法在 Google Cloud Shell 获得 b64MacKey 和 keyid |
3 666VS2333 2023-01-20 21:25:32 +08:00 via Android 到期可以续吗 |
4 jonathon523 OP |
5 666VS2333 2023-01-20 22:48:16 +08:00 via Android @jonathon523 感谢老哥 |
6 daiv 2023-01-20 23:06:18 +08:00 Let's Encrypt / ZeroSSL 现在多了这个, 给个切换的理由呗 |
7 jonathon523 OP @daiv 国内 VPS 申请方便;根 CA 为 GlobalSign ,根 CA 的支持性和兼容性比 Let's Encrypt 好;签发速度比 ZeroSSL 快得多,ZeroSSL 经常时不时抽风,这个不会。 |
8 superares 2023-01-21 08:18:17 +08:00 via iPhone 可惜还是 preview 状态,cert-manager 还不支持 |
9 simau 2023-01-21 08:56:07 +08:00 补充一下:需要先设置一下自己的 project id ,project id 可以在 gcp console 页找到,$ gcloud config set project project_id |
10 jonathon523 OP @superares 已经是 Public Review 了 官方文档里面有说 For Kubernetes based workloads If you are using Kubernetes, thanks to cert-manager (another ACME client), it is just as easy. 具体请看 https://cloud.google.com/blog/products/identity-security/automate-public-certificate-lifecycle-management-via--acme-client-api |
11 jonathon523 OP @simau 可以先在 console.cloud.google.com 顶栏选好项目再点击 Cloud Shell 的图标创建 session ,或者在 shell.console.cloud.google.com 标签页切换栏中点击加号旁边的三角,选择对应的 project id |
12 jonathon523 OP @daiv 还想到一个,Let's Encrypt 的证书因为很多翻墙的人和灰产在用,会被 GFW 重点关照。 |
13 simau 2023-01-21 09:20:16 +08:00 @jonathon523 刚刚试过了,没魔法访问不了 https://dv.acme-v02.api.pki.goog ,op 确定是可以访问? |
14 superares 2023-01-21 10:27:32 +08:00 @jonathon523 好使。和 ZeroSSL 的方式一样 |
15 jonathon523 OP @simau 刚刚测试了一下好像确实访问不了了,估计是这两天刚墙 我待会儿看看能不能搞个反向代理用 |
16 me221 2023-01-21 13:27:51 +08:00 感谢分享, 不过国内不能顺利申请 |
17 300 2023-01-21 16:05:34 +08:00 |
18 jonathon523 OP @winterbells IP 地址证书需要 IP 地址块持有者申请,acme 没法搞 |
19 Hansah 2023-01-21 16:33:31 +08:00 via Android 有老哥弄个自动续期的脚本嘛 |
20 me221 2023-01-21 18:36:30 +08:00 我打算用 actions 自动续期, 发现 hmac_key 和 keyid 只能用一次.... |
21 300 2023-01-21 20:20:37 +08:00 via Android @jonathon523 噢噢,突然理解了 |
23 jonathon523 OP |
24 bugfan 2023-01-22 23:56:37 +08:00 via iPhone @siknet 哈哈 你看看 https://www.i996.me 里面的证书签发功能,只需要 2 步,就能帮你签好证书,支持房,域名证书,而且这个支持以文件夹方式下载和 http api 方式获取,方便你集成到自己程序里。如果你用 nginx 可以用文件夹方式获取,配置到计划任务就行了 |
25 jonathon523 OP @siknet acmesh 还是会在你申请的服务器上创建定时任务,进行续期的 |
26 chancat 2023-01-23 12:41:09 +08:00 via Android 谢谢分享,看看先 |
27 blankmiss 2023-01-23 17:09:04 +08:00 能签泛域名吗 |
28 jonathon523 OP @blankmiss 可以的 |
29 elboble 2023-01-26 15:23:40 +08:00 已经用上了,暂时没发现区别。 对了,原来没用过 google 的云服务,这样算开了服务,会收费吗?? |
30 jonathon523 OP @elboble 这个是免费的,不会收费 |