先说背景,阿里云的免费证书从1年有效期改为了3个(๐•ᴗ•๐)有效期,1年有效期的证书需要收费68元/年。接到阿里云的通知以后,就开始寻找替代品,但是因为当时我的证书到期时间还早,就没怎么努力,现在,10(๐•ᴗ•๐)份就要到期了,于是越发努力寻找,最终选择了docker部署acme.sh自动申请并续签。自动申请今天下午已经验证成功,自动续期在12(๐•ᴗ•๐)份验证成功后会在本贴更新。先放申请成功的截图
再是参考文章:docker获取Let's Encrypt永久免费SSL证书,以及acme.sh的仓库
前提条件:1.windows已安装docker desktop
2.有阿里云域名或者其他平台的域名
教程:
1、首先要注册zerossl.com,因为acme.sh在3.0版本以后,默认使用zerossl申请证书,所以首先要注册,用邮箱注册,注册完成就可以了,不用其他操作,邮箱后边要用到。
2、要新建一个文件夹用于映射/acme.sh,生成的证书也会放在这个文件下,我用的是D:\docker\ssl-crt
3、以管理员身份运行PowerShell,然后拉取acme.sh
docker pull neilpang/acme.sh
相信用过docker的肯定不陌生,就不截图了
4、运行一次acme.sh申请证书,看是否成功
docker run --rm -it '
-v /d/docker/ssl-crt:/acme.sh '
#这指的是将容器内的/acme.sh映射到D:\docker\ssl-crt,注意写法
-e Ali_Key="XXX" '
#阿里云的AccessKey ID,腾讯云也一样,可能就是名字有区别
-e Ali_Secret="XXX" '
#阿里云的AccessKey Secret
neilpang/acme.sh --register-account -m zerossl@XXX.com --server zerossl --issue --dns dns_ali -d *.example.com
#zerossl@XXX.com需要改为刚刚注册的zerossl邮箱;如果是阿里云的域名就用dns_ali,其他的请自行询问客服“域名的dns模式”;*.example.com是你自己的域名,注意,这样申请的证书可以匹配所有的子域名,但是不能直接匹配example.com,如果想要匹配根域名,在最后再加上-d example.com
,不要带 “ * ”。
注意:每行命令最后的 ’ 不是单引号,而是 '`',也就是键盘上Esc下方的键
如果成功,就会看到我上面截图一样的信息,并且登录zerossl的账号,会看到已经有证书了
而且,在D:\docker\ssl-crt目录下,也有生成的证书和key了
5、成功后,将acme.sh和docker的守护程序绑定
docker run --rm -itd '
-v /d/docker/ssl-crt:/acme.sh '
-e Ali_Key="XXX" '
-e Ali_Secret="XXX" '
neilpang/acme.sh --register-account -m zerossl@XXX.com --server zerossl --issue --dns dns_ali -d *.example.com daemon
这样就完成了,目前,acme.sh是每60天自动更新证书,以后可能会缩短。