如何从PEM编码的证书中确定SSL证书的到期日期?

bgtovc5b  于 2022-09-19  发布在  Linux
关注(0)|答案(2)|浏览(304)

如果我在Mac或Linux中有实际的文件和Bash外壳,我如何查询证书文件以了解它何时到期?不是网站,而是证书文件本身,假设我有CSR、密钥、pem和链文件。

flmtquvp

flmtquvp1#

使用openssl

openssl x509 -enddate -noout -in file.pem

输出显示在表格中:

notAfter=Nov  3 22:23:50 2014 GMT

另请参见MikeW's answer,了解如何轻松检查证书是否已过期,或是否在特定时间段内过期,而不必解析上面的日期。

ee7vknir

ee7vknir2#

如果您只想知道证书是否已过期(或将在接下来的N秒内过期),openssl x509-checkend <seconds>选项将告诉您:

if openssl x509 -checkend 86400 -noout -in file.pem
then
  echo "Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi

这就省去了自己进行日期/时间比较。

在上面的示例中,如果证书尚未过期,openssl将返回退出代码0(零),并且在接下来的86400秒内不会过期。如果证书将过期或已经过期-或其他错误,如无效/不存在的文件-返回代码为1

(当然,它假定时间/日期设置正确)

请注意,旧版本的OpenSSL有一个错误,这意味着如果checkend中指定的时间太长,将始终返回0(https://github.com/openssl/openssl/issues/6180)。

相关问题