如何查看Let‘s encrypt 证书ssl到期时间与自动续期

之前,有一个域名使用了网上免费的 ssl 证书,然后想在该证书过期后更换为 Let's encrypt 的免费证书,便想查询下该域名 ssl 证书还剩多少天过期。

查询证书到期时间的方法还是很简单的,以下使用 sslforfree.com 这个域名进行测试,下面简单的记录一下步骤。

方法一:直接浏览器上查看

该方法的前提是你的域名已经指向了 web 服务器,在浏览器上可以正常访问。

首先使用浏览器访问你的站点域名,然后单击地址栏上面的锁图标进行查看:

上面使用的是firefox浏览器进行查看,其它浏览器应该查看的方法也基本一样。

方法二:在服务端使用 Openssl 工具进行查看

由于我服务端是搭建在 Centos 上,所以用 xshell 或者 putty 工具登录后,进入证书目录,使用 openssl 命令进行查看:

# cd :/etc/letsencrypt/sslforfree.com_ecc

# openssl x509 -in cert.pem -noout -dates

上面改成你自己证书的所在目录,证书名称也改成你自己服务端上证书的名称。

方法三:使用 php 代码方法进行查看

如果你有多个可访问的域名,那么使用代码的方法进行查看就会容易很多,省得一个一个手动查看。下面贴上代码:

 
  1. /**

  2. * 获取证书有效期

  3. */

  4. public function getValidity(){

  5. $domain = "sslforfree.com";

  6. $context = stream_context_create(array("ssl" => array("capture_peer_cert_chain" => true)));

  7. $socket = stream_socket_client("ssl://$domain:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

  8. $context = stream_context_get_params($socket);

  9. foreach ($context["options"]["ssl"]["peer_certificate_chain"] as $value) {

  10. //使用openssl扩展解析证书,这里使用x509证书验证函数

  11. $cerInfo = openssl_x509_parse($value);

  12. if(strpos($cerInfo['name'],$domain)) {

  13. echo "start:".date("Y-m-d",$cerInfo['validFrom_time_t'])."<br/>";

  14. echo "end:".date("Y-m-d",$cerInfo['validTo_time_t']);

  15. }

  16. }

  17. }

输出内容:

start:2018-04-06
end:2018-07-05

上面的 $cerInfo 信息参数很多,敢兴趣的可以打印出来看下。

上面介绍了几个查看 ssl 证书到期的方法,一般来说最常用的方法就是直接在浏览器上进行查看了,方便快捷

 

 

自动续期

获取Let's Encrypt的ssl

##获取

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

##设置为可执行

chmod a+x certbot-auto

 

执行自动部署

./certbot-auto

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

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

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
let's encrypt是一个非盈利性质的机构,致力于提供免费的SSL证书服务,以促进整个互联网的安全性。在官网上,他们提供了一键式免费申请SSL证书的脚本,使得用户可以快速而简便地获取自己网站的SSL证书。 这个一键式免费申请SSL证书脚本的使用非常简单。首先,用户需要在自己的网站服务器上安装并配置好Certbot工具。Certbot是一个由let's encrypt官方开发的自动化工具,用于申请和更新SSL证书。 在安装和配置好Certbot之后,用户只需要在命令行中输入一条简单的指令,就可以申请自己网站的SSL证书了。具体指令如下: $ sudo certbot certonly --standalone -d <your_domain> 其中,“<your_domain>”替换为用户自己的域名。这条指令的作用是告诉Certbot以standalone模式运行,并申请一个新的证书,该证书将与用户输入的域名关联。 Certbot会自动let's encrypt的服务器进行通信,验证用户所拥有的域名和服务器的控制权。一旦验证通过,Certbot就会生成一个有效期为90天的SSL证书,并将其保存在用户指定的位置。 用户可以根据自己的需要选择将证书文件保存到哪个目录,以及将其用于哪个Web服务器(例如Apache或Nginx)。 值得一提的是,这个一键式免费申请SSL证书脚本还支持自动续订证书的功能。Certbot会在证书即将过期之前自动执行更新过程,以确保用户的网站能够持续使用最新的SSL证书。 总之,let's encrypt官网提供的一键式免费申请SSL证书脚本极大地简化了证书申请和管理的过程,让网站拥有更安全可靠的加密通信。用户只需几个简单的步骤,就能轻松获得免费的SSL证书,提升网站的安全性和可信度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hu5566798

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值