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
API [publicca.googleapis.com] not enabled on project [<projectid>]. Would you like to enable and retry (this will take a few minutes)? (y/N)? y #允许创建 publica API
Enabling service [publicca.googleapis.com] on project [<projectid>]...
Operation "operations/acat.p2-<projectid>-<uuid>" finished successfully.
Created an external account key
[b64MacKey: <hmac_key>
keyId: <keyid>]

保存好输出的 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"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

输入下面命令,签发证书

./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 中,并在需要时被重用。