本博客的《如何申请免费好用的HTTPS证书Let's Encrypt》和《在Nginx中使用Let's Encrypt免费证书配置HTTPS》文章分别介绍了如何申请Let's Encrypt的HTTPS证书和如何在nginx里面配置Let's Encrypt的HTTPS证书。但是Let's Encrypt HTTPS证书的有效期只有90天:
到期之后我们需要续签,不过值得高兴的是,我们可以程序自动搞定这些事,我们先在nginx里面配置如下的信息:
location ^~ /.well-known/acme-challenge/ { alias /date/web/iteblogssl/www/challenges/; try_files $uri =404; }
这个就是《如何申请免费好用的HTTPS证书Let's Encrypt》文章中配置验证服务的时候用到的nginx配置。设置完上面的配置之后,我们编写一个sh脚本,用于自动申请签证:
#!/bin/bash cd /data/web/ssl/ python acme_tiny.py --account-key account.key --csr domain.csr --acme-dir /date/web/iteblogssl/www/challenges/ > signed.crt wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat signed.crt intermediate.pem > chained.pem service nginx reload
将上面的文件保存到iteblog.sh
文件里面,并赋予执行权限:
iteblog$ chmod 777 iteblog.sh
然后加到到操作系统的crontab
里面,如下:
iteblog$ sudo crontab -e 0 0 2 * * /bash/sh /data/web/ssl/iteblog.sh > /dev/null 2>&1
上面定时任务将每两月执行iteblog.sh
脚本来自动申请Let's Encrypt证书。更新的时候可以看到日志文件里面有如下HTTP请求:
172.68.34.72 - - [05/Aug/2016:10:23:11 +0800] "GET /.well-known/acme-challenge/BM8Te6qjCwgBS0GJI7QDqvfdPNj-ZsWlDFfJixC4_Ak HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
好了,自动化程序完成。
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【续签Let's Encrypt的HTTPS证书】(https://www.iteblog.com/archives/1736.html)