我想检查 Openvpn 服务器上的用户证书到期前一周。服务器上安装了 Centos 6.7。我可以使用命令将所有 .crt 中的结束日期和主题导出到 txt 文件
openssl x509 -subject -enddate -noout -in filename
格式:
subject= /C=Country/ST=ca/L=City/O=company/OU=uit/CN=user/emailAddress=email
notAfter=Oct 8 13:48:27 2020 GMT
服务器上的当前日期格式 -Wed May 25 10:03:06 MSK 2016
如何比较当前日期和notAfter
txt 文件中的行日期,如果距离证书过期还剩一周或更短时间,则subject
使用文本行中的用户名创建 txt 文件True
?
答案1
最简单的方法是将日期字符串转换为纪元时间(自 1970-01-01 00:00:00 UTC 以来以秒为单位计算),并比较秒数。
要获取当前日期(以秒为单位),请执行以下操作:
[jenny@finch ~]$ date +%s
1464162079
要从上面的日期字符串中获取日期,请执行以下操作
[jenny@finch ~]$ date -d 'Oct 8 13:48:27 2020 GMT' +%s
1602164907
一周为 604800 秒,检查两次时间之差是否小于该值。