使用 Acme.sh 申请 Google 的免费 SSL 证书
一、申请证书-获取EAB 密钥
通过 ACME 脚本申请 GTS 证书时,会要求你提供 b64MacKey
和 keyId
,以下是它的获取方法。
DnsApi wiki
通过 Google Cloud Shell 获取 (网页端操作)
1.1、前往 Google Cloud 页面,在右上角新建一个名为 Google Trust Services
的项目,并启用 Public Certificate Authority API
1.2、选择你刚刚创建的新项目,点击右上角的"激活 Cloud Shell"
1.3、中间可能需要授权,成功授权后在 Cloud Shell 输入
|
|
此命令会返回对生产环境有效的 EAB 密钥 和公共 CA 环境中。在响应正文中,keyId 字段包含 EAB 密钥 ID,b64MacKey 字段包含 EAB HMAC。
Created an external account key [b64MacKey: xxxxxx keyId: xxxxxx]
您必须在获得 EAB 密钥后的 7 天内使用该密钥。如果 7 天内未使用 EAB Secret 则会失效。使用 EAB 密钥注册的 ACME 账号没有到期时间。
如果你决定不再使用该 API,请在 Google Cloud 删除此项目!
二、安装并配置 acme.sh
1、安装 acme.sh
|
|
如果你正在使用 ACME 脚本为多个域名,使用不同的账号/CA颁发证书,请善用--accountconf
命令为每个域名创建自己的配置。
account-custom.conf
可以自定义名称
2、注册 acme 账号
|
|
- 将[Your Mail]替换为您的邮箱地址。
- 将 [Your keyId]、[Your b64MacKey]替换为 步骤1️⃣申请到的 keyId 和b64MacKey。
- 你也可以将 –server google 替换为 –server https://dv.acme-v02.api.pki.goog/directory
看到类似下面的输出内容,即代表注册成功
|
|
三通过 DNS 验证域名所有权
1、获取并导入 API Token
你可以选择使用 全局 API 还是单域 API,两者都可以在 Cloudflare API Token 获取。
创建单域 API :
此令牌只会显示一次,请及时保存。
选择系统自带的模版即可,有特殊需求的可以在页面底部选择自定义(注意下面令牌权限)
区域资源代表这个 API 可以控制的区域
我这里选择了单域 API,使用命令导入 API:
|
|
- CF_Token 为你获取到的 用户 API 令牌
- CF_Account_ID 和 CF_Zone_ID 可以在你域名概述页面侧边栏的 API 分栏看到。
|
|