谷歌免费SSL网站安全证书GTS(Google Trust Services) 申请完整指南

谷歌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配置中就可以了。

posted @ 2026-01-12 21:21  左小皓  阅读(1048)  评论(0)    收藏  举报