历经两年多的发展,随着https的普及,让Let’s Encrypt 成为全球最受欢迎的免费SSL证书签发机构。
Let’s Encrypt是由ISRG(互联网安全研究小组)联手组成证书颁发机构。ISRG是一个关注网络安全的公益组织,其赞助商从非商业组织到财富100强公司都有,包括Mozilla,Akamai,思科,Facebook,密歇根大学等等。
当初ISRG成立Let’s Encrypt的初衷是为了让更多的中小企业和个人平台快速便捷的从http升级到https,所以Let’s Encrypt推出了免费的SSL证书。为了确保证书的安全性和时效性,Let’s Encrypt设定了免费SSL证书的有效期限为三个月。这意味着三个月期限满之后,必须向Let’s Encrypt申请续期。如果没有申请续期,则该网站证书过期,网站的HTTPS传输协议不受浏览器的信任。
过去,Let’s Encrypt仅支持手动续期,从而导致有些站长因为忘记了续期导致网站产生不被信任的情况。为了避免这些情况再次出现,Let’s Encrypt多次升级关于免费SSL证书续期系统。现在Let’s Encrypt免费SSL证书到期前可手动续约,也可以自己写定时脚本任务自动续约。
写定时脚本任务自动续约
1、脚本
#/bin/sh
#续期 说明:只用renew的话,会先检查证书是否需要更新,大概是距离到期还有三天或者十几天之内才会执行更新,否则会提示不需要更新。(昨天更新了证书,今天直接用renew,提示不允许更新)
#这里方便测试,增加参数–force-renew,能够强制立即更新(但好像也会有检查,时间会变短,比如我刚才更新过了,马上再次执行会报错并提示不需要更新)。
./certbot-auto renew –force-renew
#生成p12
cd /mnt/web/letsTemp && openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat -passin passyourPKCS12pass -passout pass:yourPKCS12pass
#移动新生成的证书文件
cp /etc/letsencrypt/live/yourDomain/fullchain.pem /mnt/web/letsTemp
cp /etc/letsencrypt/live/yourDomain/privkey.pem /mnt/web/letsTemp
#生成jks文件
#备份并删除原jks文件
mv /mnt/web/letsTemp/MyDSKeyStore.jks /mnt/web/letsTemp/MyDSKeyStore`date ‘+%Y-%m-%d’`.jks
cd /mnt/web/letsTemp && keytool -importkeystore -deststorepass yourKeyPass -destkeypass yourKeyPass -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass yourPKCS12pass -alias tomcat
#重启服务器
/mnt/web/tomcat/tomcat8/bin/restartup.sh
2、定时任务
脚本有了,还需要在linux中添加一个定期执行脚本的任务,这里用linux自带的cron来处理这部分。
crontab -e
在打开的编辑器中添加如下内容(每个月1号凌晨3点更新)
0 0 3 * * sh /mnt/web/lets/ssl_auto_auth.sh >/dev/null 2>&1 &
使用crontab自动续期
在安装了lets encrypt证书之后,默认是90天到期,我们可以手动提前续期。不过为了防止忘记,我们可以采取让lets encrypt自动续期的方法。这里需要用到crontab定时执行命令。
一般来说CentOS系统里面都自动内置了crontab程序,如果没有,那么centos安装crontab命令如下:
yum install vixie-cron crontabs //安装Crontab
chkconfig crond on //设为开机自启动
service crond start //启动
说明:vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、 或列举用来驱动 cron 守护进程的表格的程序。
Crontab使用方法
1、查看crontab定时执行任务列表
crontab -l
2、添加crontab定时执行任务
crontab -e
自动续签证书
Let’s Encrypt 证书只有 90 天的有效期,一旦我们忘记了就会失效了。所以建议使用crontab进行自动续期,让证书一直有效。
在Xhell中输入crontab -e添加命令,输入a进入编辑状态,然后用方向键选到新的一行,加上规则:
0 3 1 * * /root/certbot-auto renew –renew-hook “/etc/init.d/nginx reload”
按“ESC”退出编辑状态,输入:wq保存并退出。
用crontab -l命令查看一下是否存在刚才添加的定时命令。如果存在的话,那么每月1日的凌晨3点就会执行一次所有域名的续期操作。不过有请求次数的限制所以别太频繁了。
标签: let s encrypt, Let’s Encrypt上一篇:Linux下显示IP地理位置信息的小工具-nali
下一篇:Ubuntu 完全卸载Apache2