Google Cloud 推出了通过 Automatic Certificate Management Environment(也就是我们常说的 acme 协议)实现的自动化证书管理服务。这也意味着我们现在可以免费申请到和 Let’s Encrypt 一样的 Google 公共证书了。
主要特性如下:
- 支持多域名以及通配符证书(通配符证书目前需要通过 DNS 验证)
- 支持申请 ECC 和 RSA 证书
- 支持申请 IP 证书(目前只能该 IP Block 的所有者进行验证)
- 证书最长有效期 90 天
- 不支持 IDN 域名
- OCSP 地址为 ocsp.pki.goog,有国内服务器节点
1、申请内测资格
先去GCP后台 新建一个项目,可以用默认的第一个项目也可以自己新建。
然后复制显示的项目ID,留待备用
然后打开ACME API申请页面
按图填就行!
然后就会进入审核流程,一般最多一两天就可以通过了
我这里等了两天收到了通过的邮件
2、获取注册密钥
2.1 打开API
打开google cloud证书api
https://console.cloud.google.com/apis/library/publicca.googleapis.com?project=yourprojectid
把yourprojectid切换为你的project ID
直接点击”启用”按钮,应该会跳转到如下页面
2.2 创建API Key
在上个页面点击右上角激活Cloud Shell
没启用过的点下继续,这个不收钱,放心呐!然后运行以下命令
gcloud beta publicca external-account-keys create
然后点击授权
如果第一次报错那就再运行一次
记住返回的b64MacKey和keyID,复制并存档,放在记事本等文本编辑软件保存即可,留待备用
3、安装acme.sh
安装证书工具acme.sh
3.1 下载acme.sh
在你服务器上跑
curl https://get.acme.sh | sh -s
提示安装成功后断开SSH重新链接
3.2 签发证书
使用凭据注册并且签发证书
注册账户API
acme.sh --set-default-ca --server google
acme.sh --register-account --accountemail <Your Email Address> --eab-kid <Your KeyID> --eab-hmac-key <Your b64MacKey> --server https://dv.acme-v02.api.pki.goog/directory
申请SSL
acme.sh --issue --dns -d <yourdomain> --yes-I-know-dns-manual-mode-enough-go-ahead-please
接下来你需要去你的域名解析提供商那里,按照他的要求解析TXT记录
[Fri 13 May 2022 02:02:19 AM UTC] Getting webroot for domain='zyglq.cn'
[Fri 13 May 2022 02:02:19 AM UTC] Add the following TXT record:
[Fri 13 May 2022 02:02:19 AM UTC] Domain: '_acme-challenge.zyglq.cn'
[Fri 13 May 2022 02:02:19 AM UTC] TXT value: '_iUtBR7DMXGsbw9LaBE9TXDFgvI1ST4XMO9R4FNerCY'
这个每个人记录都不一样,这里演示的是我的域名,我就需要需要解析子域名为’_acme-challenge的TXT记录,记录内容为_iUtBR7DMXGsbw9LaBE9TXDFgvI1ST4XMO9R4FNe
解析好后执行这个命令
acme.sh --renew -d <yourdomain> --yes-I-know-dns-manual-mode-enough-go-ahead-please
像下图这样就是ok了
一二行告诉的是你证书存储位置,可以直接把nginx配置文件的ssl证书改到这个文件,就能用了
4、进阶操作
acme.sh这个脚本支持许多进阶操作,其中我觉得很有用的就是可以设置DNS服务商的API来进行自动续签证书,设置方法可以参见官方wiki。
暂无评论内容