我的服务器在阿里云,DNS 服务器在 DNSPod,试过用 certbot 配合 snap 的 DNSPod 插件配置泛域名证书,怎么想方设法都没成功。最后还是用了 python 上的 certbot 和插件才成功。
删除其他版本的 certbot
把以前的老版本的 Certbot 删除:
yum remove certbot
安装 python 3.8
阿里云的 CentOS yum 安装的 python3 版本比较低,最高是 python 3.6。
可以用 centos-release-scl
源
- 仓库注册,安装 python38。
1 | yum install -y centos-release-scl # 仓库注册 |
2.1 创建软连接。
1 | ln -s /opt/rh/rh-python38/root/usr/bin/python3 /usr/bin/python3 |
2.2 把 /opt/rh/rh-python38/root/usr/bin/
加入 PATH
,这样的话后面用 pip3
装了脚本可以正常执行。
1 | export PATH=$PATH:/opt/rh/rh-python38/root/usr/bin/:/opt/rh/rh-python38/root/usr/local/bin |
- 完成后确认版本。
1 | python3 -V |
3.1 如果失败可能要刷新下命令缓存。
1 | hash -r |
安装 certbot 和 certbot-dnspod
1 | pip3 install certbot certbot-dnspod |
然后可以参考 certbot-dnspod
的文档
创建一个 ~/.secrets/certbot/dnspod.ini
的文件,内容为:
1 | certbot_dnspod_token_id = <your token id> |
授予权限:
1 | chmod 600 ~/.secrets/certbot/dnspod.ini |
1 | sudo certbot certonly \ |
注意 certbot-dnspod-credentials
这个文件的 API ID 是在「API 密钥」界面的「DNSPod Token」标签下面的。
再注意一点,用 rh-python38,脚本目录是 /opt/rh/rh-python38/root/usr/local/bin
,如果之前没把目录加入 PATH
,会无法直接运行 certbot
。
本文作者:希蜜
本文链接: https://sand.litofu.com/wildcard-certificates-with-certbot-and-dnspod/
本作品采用知识共享署名 4.0 国际许可协议进行许可。