15042895833
首页 >> 新闻案例

哪个云服务器好用吗升级自动部署更新SSL证书系统、申请godaddy的APIKEY

作者:云服务器网 | 2025-12-31 06:00:40

云服务器是什么系统

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

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

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

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

整理需求如下:

1. 确认certd新版版本支持godaddy2. 如果支持则升级certd(确保数据完整性)3. 申请godaddy的APIKEY4. 自动更新证书

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

升级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错误,可以尝试设置dnsdns:- 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.4extra_hosts:↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义hosts,外网域名可以指向本地局域网ip地址-"localdomain.com:192.168.1.3"↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数network_mode: hostlabels: com.centurylinklabs.watchtower.enable: "true"↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把下面networks的注释放开networks:- ip6netenvironment:设置环境变量即可自定义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的版本号要保持为latestcertd-updater:添加 Watchtower 服务image: containrrr/watchtower:latestcontainer_name: certd-updaterrestart: unless-stoppedvolumes:- /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:trueipam:config:- subnet: 2001:db8::/64

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

查看镜像dockerimages|grepcertdregistry.cn-shenzhen.aliyuncs.com/handsfree/certdlatest64080b99294c7monthsago651MB查看运行的容器:dockerps|grepcertdc9e0a2ac843bregistry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest"docker-entrypoint.s…"7monthsagoUp7months0.0.0.0:7001->7001/tcp,7002/tcpcertd

3.停止并且删除容器

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

dockerstop certddockerrm -f certd

4.删除镜像

删除镜像dockerrmi <镜像id>dockerrmi 64080b99294c

5.启动

dockercomposeup-dWARN[0000]/data/docker/certd/docker-compose.yaml:`version`isobsolete[+]Running5/11certd[⣿⣤⣿⣿⣿⣀⣿⣀⠀⠀]Pulling7.4s2d35ebdb57d9Pullcomplete1.1s9682177f5ddaDownloading[============================>]29.38MB/51.55MB6.8se910c7b62cc7Downloadcomplete0.4seb9e06b66aaeDownloadcomplete0.5scbfaeef5880eDownloadcomplete

确认是否升级

升级前v1.31.2

阿里云服务器 负载

升级后v1.37.4

认证有了godaddy的授权

也多了一些其他的平台

再申请godaddy的APIKEY

使用CNAME认证

1.添加CNAME管理

云服务器免费领

如图进入后台

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

2.添加域名解析记录

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

3.认证成功申请ssl证书

点击认证,成功之后

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

Godaddy申请APIKEY

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

认证成功 → 说明 API Key/Secret 是正确的。 权限不足 → GoDaddy 新政策要求: DNS/域名管理 API:账户必须拥有 ≥10 个域名 或者订阅 Discount Domain Club(优惠域名计划)。 可用性/批量查询 API:账户必须拥有 ≥50 个域名 才能使用。 如果不满足条件,就会返回 ACCESS_DENIED 错误。

不过还是记录一下

1.登录godaddy

GoDaddy开发者中心

https://developer.godaddy.com/

2.点击API Keys

3.进入API Key Management

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

4.创建API Key

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

5.保存Key和Secret

6.在Certd中添加DNS授权

7.测试

报错

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

最后

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

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

阿里云服务器普通

上一篇:ppt服务器云如何判断东莞网站建设哪家好?结合2025年网站制作流程与B2B线索转化做评估
下一篇:腾讯云服务器故障2025上海网站建设哪家好?拒绝套版,深度策划 高端外贸网站建设与开发全面提升询盘转化率
联系我们