使用docker镜像一行命令签发/续期免费ssl

letsencrypt 免费的ssl证书现在已经比较流行了,今天来使用docker环境一行命令签发/续期证书。
他自己的有多种方式验证服务器的合法性,也就是证明这台服务器是你的,你拥有他的操作权限。今天使用webroot的方式来验证,这个方式有一个好处就是不影响现有的服务器运行。
他的机制其实就是命令录入一个webroot,自动验证程序会在这个目录写入一个临时的文件,然后这个程序会从互联网外网通过你键入的域名来访问这个文件,比如[http://gbk.pw/.well-known/acme-challenge/BY91IegFTEq8MtM8nAGEwOvY2TSos_tM7E2fAOeGgF0:]。如果通过域名能访问到,也就代表着你有这台服务器有写入权限。当然这只是他的原理,使用起来可以不必关心这些。

验证程序镜像地址:quay.io/letsencrypt/letsencrypt

今天使用docker环境来签发这个证书。先交待一下环境,宿主机是跑着docker,docker的http目录挂载在宿主机上。使用自动验证程序镜像先要把宿主机上的http目录也挂载到docker验证程序镜像上。

-v /etc/letsencrypt:/etc/letsencrypt -v HTTP_ROOT_PATH:/www/

我想把这些验证也保存在宿主机上,所以还要添加下面的挂载。

-v /etc/letsencrypt:/etc/letsencrypt

然后添加其他参数运行直接运行镜像里面的验证程序 ,完整命令如下。

docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v HTTP_ROOT_PATH:/www/     quay.io/letsencrypt/letsencrypt auth --webroot -w /www/ -m  tongseo@gmail.com --agree-tos -d gbk.pw

如果的虚机主机签发多个域名的话,最好也键入相对应的路径,这样续期的时候会方便一些。

docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v /data0/web/:/www/     quay.io/letsencrypt/letsencrypt auth --webroot -w /www/vhost1/public/ -m  tongseo@gmail.com --agree-tos -d vhost1.gbk.pw
docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v /data0/web/:/www/     quay.io/letsencrypt/letsencrypt auth --webroot -w /www/vhost2/public/ -m  tongseo@gmail.com --agree-tos -d vhost2.gbk.pw

顺利的话就会出现下面的界面

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/meiyeadmin.proxy.6rooms.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/meiyeadmin.proxy.6rooms.net/privkey.pem
   Your cert will expire on 2018-05-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

续期的命令如下。测试运行可以添加–dry-run参数。

docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt -v /data0/web/vhost/:/www/     quay.io/letsencrypt/letsencrypt renew --agree-tos --dry-run

当有多个虚拟主机的情况下,要添把这个目录挂载成公用的,才可以继续操作。-v /var/lib/letsencrypt:/var/lib/letsencrypt

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha Code