#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

优劣分析

  1. 可以设置颁发证书的有效期;(最长 90 天,最短 1 天)
  2. 支持多域名及通配符;(与 Let’s Encrypt 相同)
  3. 仅支持 DNS 验证和文件验证,不支持邮件验证;(与 Let’s Encrypt 相同)
  4. 支持 IP 地址,但是仅允许该 IP 地址块的所有者进行验证;(Let’s Encrypt 暂不支持)
  5. 不支持 IDN (International Domain Name, 国际化域名,使用 Punycode 进行编码,形如 xn–1.xn–2).(Let’s Encrypt 已经支持)
  6. 目前签发的证书,即使选择 ECC 类型,证书链的中级证书也是 RSA 的(Let’s Encrypt 已经支持全链 ECC)
  7. ocsp.pki.goog 有国内节点,访客体验还是很不错的。
  8. 目前有 DNSSEC CAA 问题,在 DNSPod 添加了 DNSSEC 的用户请暂缓申请

申请方法

申请 GOOGLE 域名 API

登录 google 账号后,进入下面链接

https://console.cloud.google.com/apis/library/publicca.googleapis.com
#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

等待启用后,单击右上角的“激活 Cloud Shell”,打开 Google Cloud Shell

#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

然后在在 Cloud Shell 输入

 gcloud publicca external-account-keys create

要等待一会才会返回 keyid 和 b64mackey,不行就多输入几次

Created an external account key
[b64MacKey: xxxxxxxxxxxxxxxxxxx
keyId: xxxxxxxxxxxx]

安装 acme.sh

如果已经安装请忽略这步

curl https://get.acme.sh | sh -s email=你的邮箱   //注册或登录邮箱
cd ~/.acme.sh/  //把 Acme.sh 安装在根目录下,或者其他目录

如果是国内的机器,可以使用拖回源码直接安装:

git clone https://gitee.com/pigfei/acme.sh.git
cd acme.sh
./acme.sh --install -m [email protected]

然后在 root 目录下ls -a就可以看到有一个.acme.sh的文件夹,进入后里面有个 account.conf 配置文件,里面有前面安装时填写的邮箱,不知道有什么用,估计到时候会给通知什么的吧

进入.acme.sh 目录后使用下面命令开启 acme 自动更新

./acme.sh --upgrade --auto-upgrade

Acme.sh 默认生成 Let’s Encrypt R3 证书,我们需要修改一下让它默认生成 google 证书

bash acme.sh --set-default-ca --server google

申请 Google 证书(一)

配置 DNS API

不同 DNS 解析商 API 的获取方式与预设格式标准:

https://github.com/acmesh-official/acme.sh/wiki/dnsapi

通过官方说明文档可知,acme.sh 申请证书有两种方式,http 和 dns 验证

我使用的是 dnspod,所以这里写一下 dnspod 的,dnspod 的 token 生成页面,也可以进入dnspod 网站,点击右上角头像,然后点击 API 密钥,选择 DNSPod Token,就到了 dnspod 的 token 生成页面

点击创建密钥,输入获取到 ID 和 token,保存下来

#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

然后回到服务器配置刚才拿到的密钥

export DP_Id="密钥ID"
export DP_Key="密钥token"
#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

获取申请 google 证书的资格

bash acme.sh  --register-account  -m  邮箱 --server google \
    --eab-kid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
    --eab-hmac-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意,以上命令中带英文单引号的地方不可去除,否则电邮或 bash64 里带“-”、“_”等特殊符号有转义,不会被脚本正确识别,导致导入 API 信息出现偏差。

#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

申请常规 google 证书(可选)

acme.sh -f --server google --issue \
    -d *.imotao.com \
    -w "/home/wwwroot/imotao.com" \
    --reloadcmd "/etc/init.d/nginx reload"

会弹出两个 TXT 记录,解析它就行,稍等一会,重新激活申请订单

申请 ECC 证书(可选)

acme.sh -f --server google --issue \
    -d *.imotao.com --keylength ec-256 \
    -w "/home/wwwroot/imotao.com" \
    --reloadcmd "/etc/init.d/nginx reload"

申请Google证书(二)

设置 Google CA API

bash acme.sh --register-account --server google -m '刚刚申请 key 的谷歌账号邮箱' --eab-kid '上述第2节 keyId 对应值' --eab-hmac-key '上述第2节 b64MacKey 对应值'

注意,以上命令中带英文单引号的地方不可去除,否则电邮或 bash64 里带“-”、“_”等特殊符号有转义,不会被脚本正确识别,导致导入 API 信息出现偏差。

#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

签发证书

bash acme.sh --issue -d 当前机器IP被解析到的域名 -d *.泛域名 --dns dns_ali(这是阿里云) --keylength 申请证书类别和加密长度(如:ec-256)
./acme.sh --issue --dns dns_dp(这是dnspod) -d mydomain.com -d www.mydomain.com

申请的证书默认是放在/root/.acme.sh/目录下的,如果要在申请证书更改证书存放目录可以加入--cert-home参数,使用下面命令申请证书,其中 mydomain.com 是需要申请证书的域名,sslpath 是存放证书的目录

./acme.sh --issue --dns dns_dp -d mydomain.com --cert-home sslpath

删除证书

使用下面命令删除证书,mydomain.com 就是需要删除证书的域名,支持通配符域名

./acme.sh --remove -d mydomain.com

目前 acme.sh 支持 Let’s Encrypt、Buypass、ZeroSSL、SSL.com 和 Google Public CA,默认使用 ZeroSSL,如果需要更换可以使用下面命令:

切换 Let's Encrypt
acme.sh --set-default-ca --server letsencrypt
切换 Buypass
acme.sh --set-default-ca --server buypass
切换 ZeroSSL
acme.sh --set-default-ca --server zerossl
切换 SSL.com
acme.sh --set-default-ca --server ssl.com
切换 Google Public CA
acme.sh --set-default-ca --server google

然后因为我这里使用的是宝塔面板,宝塔面板在使用 ssl 时会把填写的内容生成一个证书并保存到/www/server/panel/vhost/cert/网站 目录下,因此 acme 自动续期后宝塔面板的 ssl 并不会使用续期后的证书,这里只需要把网站的配置文件改一下就行

#教程# – 使用acme.sh免费申请Google SSL证书(90天有效期-GTS)

如果不再使用 acme.sh,可按以下命令卸载:

bash ~/.acme.sh/acme.sh --uninstall
rm -rf ~/.acme.sh

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/8252.html

(0)
陌涛的头像陌涛
上一篇 2024年2月26日 下午10:01
下一篇 2024年3月1日 下午2:28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据