今天跟大家分享如何用docker部署acme.sh并申请华为云域名证书。
一、申请DNS API参数
申请证书时,需要验证域名拥有权,不想手动去填写txt来验证,可以使用acme.sh自带API去实现,所以就需要申请dnspod token,我们先到华为云控制台,点击统一身份认证进去创建一个子账号。
然后输入子账号跟密码,假设我们这里账号是acme,密码是test123456,截图如下
点击下一步进行创建,并且把所有用户组权限赋给他
这样我们就完成了子账号创建。我们还需要获取Username配置,按照以下截图获取,在控制台这里点击获取我的凭证
进入到页面后,复制箭头的配置,假设这里的账户名是test
完成以上操作,我们便成功获取三个关键配置。
二、部署acme.sh
这里我是用docker方式部署,docker-compose文件如下
version: "3"
services:
acme_hw:
image: neilpang/acme.sh
container_name: acme_hw_compose
restart: always
command: daemon
environment:
- HUAWEICLOUD_Username=acme
- HUAWEICLOUD_Password=test123456
- HUAWEICLOUD_DomainName=test
volumes:
- /home/app/acme_hw/cert:/acme.sh
然后我们在服务器/home/app/acme_hw这个路径作为acme.sh映射目录。
然后我们直接执行如下命令进行部署,执行以下命令
docker-compose up -d
三、申请证书
完成部署后,我们开始来申请证书,首先将默认证书服务器切换为 letsencrypt,默认是ZeroSSL,我一直申请不成功,后面改成letsencrypt就可以申请下来。
docker exec acme_tx_compose acme.sh --set-default-ca --server letsencrypt
然后我们需要到zerossl注册一个账号用来绑定,假如账号是test@gmail.com,执行以下命令行
docker exec acme_hw_compose acme.sh --register-account -m test@gmail.com --server zerossl
比如我们现在要申请的域名是gemini.test.cn,我们可以通过以下命令行执行
docker exec acme_hw_compose acme.sh --issue --dns dns_huaweicloud -d gemini.test.cn
然后就是等他申请,最终申请下来效果图如下
我们去上面我们设置的映射目录里面查看home/app/acme_hw,在下面有个cert目录,里面有我们申请的域名为名称的目录,申请下来的证书就在里面。
四、自动化续期
在 daemon 守护模式下,acme.sh 会根据申请记录,每 60 天自动更新证书,这样我们证书到期了变会自动更新。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END