准备工作

1.一个谷歌账号,能进GCP后台,有无赠金均可

2.你灵活的手

3.你智慧的大脑

4.富强民主文明和谐工具,没有的话别问我也不知道,可以找个海外的朋友帮忙

1.申请内测资格

先去GCP后台 新建一个项目,可以用默认的第一个项目也可以自己新建

然后复制显示的项目ID,一会有用

然后打开ACME API申请页面

按图填就行

然后就会进入审核流程,一般最多一两天就可以通过了

我这里等了两天收到了通过的邮件

2.获取注册密钥

2.1打开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

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

DNS API - acme.sh Wiki