如果我在Mac或Linux中有实际的文件和Bash外壳,我如何查询证书文件以了解它何时到期?不是网站,而是证书文件本身,假设我有CSR、密钥、pem和链文件。
flmtquvp1#
使用openssl:
openssl
openssl x509 -enddate -noout -in file.pem
输出显示在表格中:
notAfter=Nov 3 22:23:50 2014 GMT
另请参见MikeW's answer,了解如何轻松检查证书是否已过期,或是否在特定时间段内过期,而不必解析上面的日期。
ee7vknir2#
如果您只想知道证书是否已过期(或将在接下来的N秒内过期),openssl x509的-checkend <seconds>选项将告诉您:
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。
0
1
(当然,它假定时间/日期设置正确)
请注意,旧版本的OpenSSL有一个错误,这意味着如果checkend中指定的时间太长,将始终返回0(https://github.com/openssl/openssl/issues/6180)。
checkend
2条答案
按热度按时间flmtquvp1#
使用
openssl
:输出显示在表格中:
另请参见MikeW's answer,了解如何轻松检查证书是否已过期,或是否在特定时间段内过期,而不必解析上面的日期。
ee7vknir2#
如果您只想知道证书是否已过期(或将在接下来的N秒内过期),
openssl x509
的-checkend <seconds>
选项将告诉您:这就省去了自己进行日期/时间比较。
在上面的示例中,如果证书尚未过期,
openssl
将返回退出代码0
(零),并且在接下来的86400秒内不会过期。如果证书将过期或已经过期-或其他错误,如无效/不存在的文件-返回代码为1
。(当然,它假定时间/日期设置正确)
请注意,旧版本的OpenSSL有一个错误,这意味着如果
checkend
中指定的时间太长,将始终返回0(https://github.com/openssl/openssl/issues/6180)。