Docker部署acme.sh并申请华为云域名证书

今天跟大家分享如何用docker部署acme.sh并申请华为云域名证书。

一、申请DNS API参数

申请证书时,需要验证域名拥有权,不想手动去填写txt来验证,可以使用acme.sh自带API去实现,所以就需要申请dnspod token,我们先到华为云控制台,点击统一身份认证进去创建一个子账号。

图片[1]-Docker部署acme.sh并申请华为云域名证书-不念博客

然后输入子账号跟密码,假设我们这里账号是acme,密码是test123456,截图如下

图片[2]-Docker部署acme.sh并申请华为云域名证书-不念博客

点击下一步进行创建,并且把所有用户组权限赋给他

图片[3]-Docker部署acme.sh并申请华为云域名证书-不念博客

这样我们就完成了子账号创建。我们还需要获取Username配置,按照以下截图获取,在控制台这里点击获取我的凭证

图片[4]-Docker部署acme.sh并申请华为云域名证书-不念博客

进入到页面后,复制箭头的配置,假设这里的账户名是test

图片[5]-Docker部署acme.sh并申请华为云域名证书-不念博客

完成以上操作,我们便成功获取三个关键配置。

二、部署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

然后就是等他申请,最终申请下来效果图如下

图片[6]-Docker部署acme.sh并申请华为云域名证书-不念博客

我们去上面我们设置的映射目录里面查看home/app/acme_hw,在下面有个cert目录,里面有我们申请的域名为名称的目录,申请下来的证书就在里面。

四、自动化续期

在 daemon 守护模式下,acme.sh 会根据申请记录,每 60 天自动更新证书,这样我们证书到期了变会自动更新。 

© 版权声明
THE END