阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

101次阅读
没有评论

共计 5921 个字符,预计需要花费 15 分钟才能阅读完成。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

公司之前花钱购买的 ssl 证书快到期了,由于 ’ 消费降级 ’,这次领导说没有预算给到证书了 …

于是使用了 certd 的开源方案,之前星哥写的 免费全自动申请和自动部署更新 SSL 证书的开源系统 -certd 部署的 certd,运行了几个月的时间,可以申请免费的 ssl 证书。

安装的是 v1.31.2 版,无法使用 godaddy 的 api key,后台没有设置的选项,最近更新。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

整理需求如下:

  1. 确认 certd 新版版本支持 godaddy

  2. 如果支持则升级 certd(确保数据完整性)

  3. 申请 godaddy 的 APIKEY

  4. 自动更新证书

如图,新版的已经支持 godaddy 了。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

升级 Certd

因为之前已经安装 certd,现在只需要升级 docker 镜像。

数据都保留在“/data/docker/certd/data”,一定要记得备份数据。

1. 进入安装目录

远程 ssh 服务器

cd /data/docker/certd

2. 查看 docker-compose

cat docker-compose.yaml
version: '3.3' # 兼容旧版 docker-compose
services:
  certd:
    # 镜像                                                  #  ↓↓↓↓↓ ---- 镜像版本号,建议改成固定版本号, 例如:certd:1.29.0
    image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
    container_name: certd # 容器名
    restart: unless-stopped # 自动重启
    volumes:
      #   ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径, 默认存在宿主机的 /data/certd/ 目录下,【您需要定时备份此目录,以保障数据容灾】
      #                                                                  只要修改冒号前面的,冒号后面的 /app/data 不要动
      - /data/docker/certd/data:/app/data
    ports: # 端口映射
      #  ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突,可以修改第一个 7001 为其他不冲突的端口号,第二个 7001 不要动
      - "7001:7001"
      #  ↓↓↓↓ ---------------------------------------------------------- https 端口,可以根据实际情况,是否暴露该端口
      #- "7002:7002"
    #↓↓↓↓ -------------------------------------------------------------- 如果出现 getaddrinfo ENOTFOUND 错误,可以尝试设置 dns
#    dns:
#      - 223.5.5.5      # 阿里云公共 dns
#      - 223.6.6.6
#       # ↓↓↓↓ --------------------------------------------------------- 如果你服务器在腾讯云,可以用这个替换上面阿里云的公共 dns
#      - 119.29.29.29  # 腾讯云公共 dns
#      - 182.254.116.116
#       # ↓↓↓↓ --------------------------------------------------------- 如果你服务器部署在国外,可以用这个替换上面阿里云的公共 dns
#      - 8.8.8.8       # 谷歌公共 dns
#      - 8.8.4.4
#    extra_hosts:
#        # ↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义 hosts,外网域名可以指向本地局域网 ip 地址
#      - "localdomain.com:192.168.1.3"
#        #         ↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数
#    network_mode: host
    labels:
      com.centurylinklabs.watchtower.enable: "true"
#    ↓↓↓↓ -------------------------------------------------------------- 启用 ipv6 网络,还需要把下面 networks 的注释放开
#    networks:
#      - ip6net
    environment:
#     设置环境变量即可自定义 certd 配置
#     配置项见:packages/ui/certd-server/src/config/config.default.ts
#     配置规则:certd_ + 配置项, 点号用_代替
#                                    #↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为 true,重启之后,管理员密码将改成 123456,然后请及时修改回 false
      - certd_system_resetAdminPasswd=false

#     默认使用 sqlite 文件数据库,如果需要使用其他数据库,请设置以下环境变量
#     注意:选定使用一种数据库之后,不支持更换数据库。
#     数据库迁移方法:1、使用新数据库重新部署一套,然后将旧数据同步过去,注意 flyway_history 表的数据不要同步
#                                    #↓↓↓↓ ----------------------------- 使用 postgresql 数据库,需要提前创建数据库
#      - certd_flyway_scriptDir=./db/migration-pg                        # 升级脚本目录
#      - certd_typeorm_dataSource_default_type=postgres                  # 数据库类型
#      - certd_typeorm_dataSource_default_host=localhost                 # 数据库地址
#      - certd_typeorm_dataSource_default_port=5433                      # 数据库端口
#      - certd_typeorm_dataSource_default_username=postgres              # 用户名
#      - certd_typeorm_dataSource_default_password=yourpasswd            # 密码
#      - certd_typeorm_dataSource_default_database=certd                 # 数据库名

#                                    #↓↓↓↓ ----------------------------- 使用 mysql 数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin
#      - certd_flyway_scriptDir=./db/migration-mysql                     # 升级脚本目录
#      - certd_typeorm_dataSource_default_type=mysql                     # 数据库类型,或者 mariadb
#      - certd_typeorm_dataSource_default_host=localhost                 # 数据库地址
#      - certd_typeorm_dataSource_default_port=3306                      # 数据库端口
#      - certd_typeorm_dataSource_default_username=root                  # 用户名
#      - certd_typeorm_dataSource_default_password=yourpasswd            # 密码
#      - certd_typeorm_dataSource_default_database=certd                 # 数据库名

#         ↓↓↓↓ ---------------------------------------------------------  自动升级,上面 certd 的版本号要保持为 latest
#  certd-updater:  # 添加 Watchtower 服务
#    image: containrrr/watchtower:latest
#    container_name: certd-updater
#    restart: unless-stopped
#    volumes:
#      - /var/run/docker.sock:/var/run/docker.sock
#    # 配置 自动更新
#    environment:
#      - WATCHTOWER_CLEANUP=true            # 自动清理旧版本容器
#      - WATCHTOWER_INCLUDE_STOPPED=false   # 不更新已停止的容器
#      - WATCHTOWER_LABEL_ENABLE=true       # 根据容器标签进行更新
#      - WATCHTOWER_POLL_INTERVAL=600       # 每 10 分钟检查一次更新


#    ↓↓↓↓ -------------------------------------------------------------- 启用 ipv6 网络,还需要把上面 networks 的注释放开
#networks:
#  ip6net:
#    enable_ipv6: true
#    ipam:
#      config:
#        - subnet: 2001:db8::/64

查看镜像、查看运行的容器:

查看镜像
docker images|grep certd
registry.cn-shenzhen.aliyuncs.com/handsfree/certd   latest    64080b99294c   7 months ago    651MB

查看运行的容器:
docker ps|grep certd
c9e0a2ac843b   registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest   "docker-entrypoint.s…"   7 months ago    Up 7 months              0.0.0.0:7001->7001/tcp, 7002/tcp            certd

3. 停止并且删除容器

再次提醒,一定要备份数据!

docker stop certd
docker rm -f certd

4. 删除镜像

删除镜像
docker rmi < 镜像 id>
docker rmi 64080b99294c

5. 启动

docker compose up -d
WARN[0000] /data/docker/certd/docker-compose.yaml: `version` is obsolete 
[+] Running 5/11
 ⠼ certd [⣿⣤⣿⣿⣿⣀⣿⣀⠀⠀] Pulling                                                                                                                 7.4s 
   ✔ 2d35ebdb57d9 Pull complete                                                                                                               1.1s 
   ⠧ 9682177f5dda Downloading    [============================>]  29.38MB/51.55MB                                       6.8s 
   ✔ e910c7b62cc7 Download complete                                                                                                           0.4s 
   ✔ eb9e06b66aae Download complete                                                                                                           0.5s 
   ✔ cbfaeef5880e Download complete 

确认是否升级

升级前 v1.31.2

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

升级后 v1.37.4

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

认证有了 godaddy 的授权

也多了一些其他的平台

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

再申请 godaddy 的 APIKEY

使用 CNAME 认证

1. 添加 CNAME 管理

如图进入后台

点击 cname 记录管理,添加,填写域名

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

2. 添加域名解析记录

添加之后到 godaddy 里面添加一条 cname 记录。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

3. 认证成功申请 ssl 证书

点击认证,成功之后

再申请 ssl 证书的时候使用“CNAME 代理认证”

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

Godaddy 申请 APIKEY

到最后才发现,这步不用操作!

认证成功 → 说明 API Key/Secret 是正确的。

权限不足 → GoDaddy 新政策要求:

DNS/ 域名管理 API:账户必须拥有 ≥10 个域名 或者订阅 Discount Domain Club(优惠域名计划)。

可用性 / 批量查询 API:账户必须拥有 ≥50 个域名 才能使用。

如果不满足条件,就会返回 ACCESS_DENIED 错误。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

不过还是记录一下

1. 登录 godaddy

GoDaddy 开发者中心

https://developer.godaddy.com/

2. 点击 API Keys

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

3. 进入 API Key Management

进入 API Key Management 后,点击 [Create New API Key] 进行创建 API Key

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

4. 创建 API Key

创建 API Key 时,注意选择 Environment,必须选择 Production。

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

5. 保存 Key 和 Secret

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

6. 在 Certd 中添加 DNS 授权

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

7. 测试

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY

报错

错误:请求连接超时,Error【https://api.godaddy.com/v1/domains?limit=1】

最后

最后的最后,cname 认证就可以解决问题的。浪费了一个下午,去配置 APKKEY 和 https_proxy 的代理。

以前要手动申请、下载、替换证书,搞不好还会因为忘记续期导致网站挂掉。现在使用云服务商的 API Key+CNAME 认证的配合 certed,整个流程全自动跑起来,省心又稳妥。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2025-11-04发表,共计5921字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中