首页 网站建设网站建设正文

部署Let’s Encrypt免费SSL证书&&自动续期

仁镜 网站建设 2019-11-20 15:42:14 1632 0 网站建设ssl

前言

Let's Encrypt 作为新的证书颁发机构,免费,自动,开放,这三点对于个人用户来说尤为重要。免费自不用说,自动更是免去了很多过程和麻烦。官网目前推荐的获取和安装方式是 certbot ,只需要简单运行一些命令并作一些配置即可。

前提

1.需要有域名,它会生成指定域名的证书。(填IP会报错不支持的)

2.需要在域名指向的服务器上能访问https。(不然会报找不到443端口的错误)

3.需要linux环境。

部署

获取Let's Encrypt

##获取

wget https://dl.eff.org/certbot-auto

##设置为可执行

chmod a+x certbot-auto

执行自动部署

./certbot-auto

部署过程中会下载一大堆的依赖包,不需要紧张。如果需要确认,(输入"y")确认就好了

这里注意下,在执行过程中,会卡在'Installing Python packages',等待一段时间下载Phthon lib

如果等待很长时间都不动, 等不及了就修改pip下载源。

vi ~/.pip/pip.conf

#如果文件不存在则创建

mkdir ~/.pipvi pip.conf

在里面修改或写入下面内容

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/[install]
trusted-host=mirrors.aliyun.com

重新执行自动部署

./certbot-auto

重新部署依然会在'Installing Python packages'卡一会儿,但不会很久,五分钟以内吧。

 

依赖包下载完后会进入交互界面,依次是: 填写邮箱、域名(多域名用空格或逗号隔开)、条款确认、验证域名所有权(这一步可以选择第一种方式,手动选择tomcat的root目录)

执行成功后会显示

Congratulations! Your certificate and chain have been saved at  

/etc/letsencrypt/live/xxx.com/fullchain.pem. Your cert will

expire on 2016-10-05. To obtain a new or tweaked version of this

certificate in the future, simply run certbot-auto again. To

non-interactively renew *all* of your certificates, run

"certbot-auto renew"

此时的生成的证书文件(.pem)都已经在如下路径了

/etc/letsencrypt/

#主要用到的文件(.pem)在

/etc/letsencrypt/live/xxxxx(域名)/

自动续期

Let's Encrypt申请的证书会有三个月的有效期,可以到期前手动续约,也可以自己写定时脚本任务自动续约。嫌手动麻烦,就写了个简单的续期脚本。

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 &

使用Let's Encrypt手动创建https证书  http://www.linuxidc.com/Linux/2016-06/132138.htm

Windows申请免费SSL证书-Let's Encrypt  http://www.linuxidc.com/Linux/2017-01/139465.htm

Certbot:自动部署 Let's Encrypt 证书  http://www.linuxidc.com/Linux/2016-05/131346.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142248.htm

版权声明

1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)

本文链接:http://apod.cc/index.php/post/125.html

发表评论

评论列表(0人评论 , 1632人围观)
☹还没有评论,来说两句吧...