基于 Godaddy 与阿里云, 一键申请 SSL 证书

部署

acme.sh 的部署我采用的是 docker 方式进行部署,相应的 docker-compose.yaml 文件内容如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
version: "3"

services:
  acme.sh:
    image: neilpang/acme.sh:latest
    container_name: acme.sh
    command: daemon
    volumes:
      - "./Volume:/acme.sh"
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - DEPLOY_DOCKER_CONTAINER_LABEL=__nginx__
      - DEPLOY_DOCKER_CONTAINER_RELOAD_CMD="nginx -s reload -c /etc/nginx/nginx.conf"
    restart: always
    networks:
      - internal-network

networks:
  internal-network:
    external: true

其中 ./Volume 是用于挂载证书文件夹的。

证书申请

无论是使用哪种方式申请证书,都需要注册申请人的信息。使用 docker exec -ti <container-name> sh 命令进入到容器内部,随后执行以下命令注册信息。

1
acme.sh --register-account -m <你的 Email 邮箱地址>

阿里云一键申请

首先登录阿里云的控制台,鼠标移动到右上角头像位置,弹出的下拉中选择 AccessKey 管理

image-20221001141311920

在新的页面中,选择 创建 AccessKey 即可创建一个新的密钥,记录好 KeySecret 备用。

image-20221001141439487

还是来到 acme.sh 的容器内部,执行以下命令,将阿里云相关的密钥信息导出到环境变量,以便 acme.sh 使用。最后调用 acme.sh --issue 方法开始自动申请证书。

下面的变量以 example.com 域名为例,只要申请成功就是泛解析域名的证书。

1
2
3
4
5
6
# 导出到环境变量。
export Ali_Key="Key"
export Ali_Secret="Secret"

# 申请证书。
acme.sh --issue --dns dns_ali -d example.com -d *.example.com --debug

Godaddy 申请

前置操作也是一样的,需要注册申请人的信息,然后来到 Godaddy 对应的 API Key Managment 页面,选择 Create New API Key,在随后的 Environment 中选择 Production,生成了对应的密钥之后,保存下来。

这里只会显示一次,请记得复制保存对应的密钥信息。

image-20221001142757369

最后进入到 acme.sh 容器,键入以下命令开始申请 SSL 证书。

1
2
3
4
5
6
# 导出到环境变量。
export GD_Key="Key"
export GD_Secret="Secret"

# 申请证书。
acme.sh --issue --dns dns_gd -d example.com -d *.example.com

Reference: acme.sh 搭配 GoDaddy 自動續期 Let’s Encrypt 免費萬用憑證 - 腳印網頁資訊設計

Built with Hugo
主题 StackJimmy 设计