使用 acme.sh 实现自动获取及更新 Google CA SSL 证书
Contents
Google Cloud 在三月底也推出了通过 Automatic Certificate Management Environment(也就是我们常说的 acme 协议)实现的自动化证书管理服务。这也意味着我们现在可以免费申请到和 Let’s Encrypt 一样的 Google 公共证书了。
证书简介
GTS SSL 证书的特点是
- 支持 IP 地址块持有者申请 IP 地址证书
- 根 CA 为GlobalSign,根 CA 的支持性和兼容性比Let’s Encrypt好
- 支持安全性和性能更好的ECC 证书
- 支持多域名、泛域名证书申请(例如*.cestlavie.moe)
- 有效期为 90 天
- 支持的 ACME 验证方式为TLS-ALPN-01、HTTP-01、和 DNS-01
- 暂不支持邮箱验证方式申请
- 暂不支持以国际化域名编码的域名
申请步骤
获取注册密钥
打开 shell.cloud.google.com,输入以下代码启用 API
$ gcloud services enable publicca.googleapis.com |
输入下面内容选中项目,如果你只有一个项目的话可以跳过这步,会自动设置为唯一项目,可以在你的控制台面板菜单栏左上角点击你的项目名查看项目 ID。
$ gcloud config set project [project ID] |
$ gcloud beta publicca external-account-keys create #创建凭据 |
回显示为
$ gcloud beta publicca external-account-keys create |
保存好输出的 hmac_key 和 keyid ,接下来要用
安装 acme.sh
$ curl https://get.acme.sh | sh -s |
若后面出现 command not found,则需要手动执行以下命令:
$ source ~/.bashrc |
签发证书
这里以使用阿里云的 API 为例,通过 DNS 验证申请通配符证书。
首先,您需要登录到您的阿里云帐户以获取RAM API密钥。 https://ram.console.aliyun.com/users
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" |
输入下面命令,签发证书
./acme.sh --issue --dns dns_ali -d example.com -d www.example.com |
看到回显Cert success即为申请成功,可以在~/.acme.sh/yourdomain.com/下获取证书
Ali_Key 和 Ali_Secret 将保存在 ~/.acme.sh/account.conf 中,并在需要时被重用。