谷歌免费SSL网站安全证书GTS(Google Trust Services) 申请完整指南,Google Trust Services (GTS) 提供与 Let's Encrypt 类似的免费、自动更新的 TLS 证书,通过 ACME 协议实现。证书有效期90 天,支持泛域名和多域名,由 Google 基础设施支持,性能和可靠性优异。
谷歌GTS(Google Trust Services) 免费证书申请完整指南
Google Trust Services (GTS) 提供与 Let's Encrypt 类似的免费、自动更新的 TLS 证书,通过 ACME 协议实现。证书有效期90 天,支持泛域名和多域名,由 Google 基础设施支持,性能和可靠性优异。
一、准备工作
https://console.cloud.google.com 打开网址
创建或选择一个项目(建议新建专用项目)
1.通过cloud shell
|
Bash gcloud projects create [PROJECT_ID:随意写,字母数字] gcloud config set project [PROJECT_ID]
|
启用 Public CA API(这是获取 GTS 证书的入口)
|
Bash gcloud services enable publicca.googleapis.com
|
2.通过控制台创建
看视频
二、获取 EAB 密钥(必备步骤)
GTS 使用外部账号绑定 (EAB) 机制验证申请者身份,需要获取 EAB 密钥对:
生成 EAB 密钥(命令行)
|
Bash gcloud beta publicca external-account-keys create
|
执行后会返回:
|
JavaScript "keyId": "xxxxxx", "b64MacKey": "yyyyyy"
|
请妥善保存这两个值,它们是申请证书的关键凭证,一会要用7 天内有效
三、使用 ACME 客户端申请证书
接下来的过程,都在acme.sh指令中完成了,
1、安装acme客户端
如果是第一次申请证书,需要先在Cloud Shell 中安装 acme.sh,并用生成的 EAB 密钥注册 ACME 账户,验证接口交互完整性:
|
JavaScript # 1. 安装acme.sh curl https://get.acme.sh | sh
# 2. 重新加载环境变量(使acme.sh命令生效) source ~/.bashrc
# 3. 注册ACME账户(替换为你的邮箱、EAB KID和HMAC密钥) acme.sh --register-account \ -m your-email@example.com \ --server google \ --eab-kid [第二步生成的keyId] \ --eab-hmac-key [第二步生成的b64MacKey]
|
2、申请 GTS SSL 证书(Cloud Shell 内执行)
场景 1:申请单域名证书(如example.com)
|
JavaScript # 使用acme.sh申请单域名证书(DNS-01验证) acme.sh --issue --server google -d abcd.example.com --dns dns_manual 参数说明: acme.sh --issue \ --server google \ # 指定GTS的ACME服务器 -d example.com \ # 替换为你的域名 --dns dns_manual # 手动DNS验证(适合无DNS服务商API的场景)
|
场景 2:申请泛域名证书(如*.example.com,推荐)
|
JavaScript # 使用acme.sh申请泛域名证书(必须用DNS-01验证) acme.sh --issue --server google -d example.com -d *.example.com --dns dns_manual 参数说明: acme.sh --issue \ --server google \ -d example.com \ # 主域名 -d *.example.com \ # 泛域名 --dns dns_manual
|
RSA密钥参数
--keylength 2048:标准RSA-2048位密钥(最常用)。
--keylength 4096:更强的RSA-4096位密钥(部分老旧客户端可能兼容性稍差)。
不指定时,默认使用更现代的 ECC P-256 密钥。
3、命令执行后,终端会输出DNS TXT 记录配置信息,示例:
泛域名申请结果如下:
![]()
|
JavaScript 把终端输出的DNS txt 记录值,自行到域名管理管制台,配置好 Domain: '_acme-challenge.example.com' TXT value: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' Please add the TXT records to the domains, and re-run with --renew.
|
4、登录你的域名 DNS 管理后台(如阿里云 DNS、Cloudflare、Google Domains),添加上述 TXT 记录:
主机记录:_acme-challenge(泛域名需注意:_acme-challenge.example.com)
记录类型:TXT
记录值:终端输出的随机字符串
TTL:默认就可以
5、 等待 5-10 分钟(DNS 记录生效),在 Cloud Shell 中执行续期命令完成验证:
|
JavaScript # 单域名/泛域名通用 acme.sh --renew -d example.com --server google
|
![]()
上图显示的,没有成功的生成证书,再次执行renwe指令
|
JavaScript # 单域名/泛域名通用 acme.sh --renew -d example.com --server google
|
出现下图中的内容,说明证书签发成功了
![]()
三 获取并导出证书文件(Cloud Shell → 本地)
1、按箭头指引,点击下载,可以选择目录下载,也可以全部下载
![]()
2、下载后的文件夹结构,证书就在acme.sh文件夹中了
![]()
3、证书文件的处理
![]()
有的朋友可能疑惑,为什么没有key和pem文件呢?
成功签发后,证书文件默认存放在 ~/.acme.sh/example.com/ 目录下:
example.com.cer 或 example.com.crt:pem文件,您的服务器证书。
example.com.key:这个就是key文件,您的RSA私钥文件(必须严格保密)。
ca.cer 或 fullchain.cer:完整的证书链文件(通常Nginx等需要的是此文件)。
将这两个文件的上传或者复制内容到你的网站ssl配置中就可以了。
![]()