如果我在 Mac 或 Linux 中有实际文件和 Bash shell,我如何查询证书文件何时到期?不是网站,而是证书文件本身,假设我有 csr、key、pem 和链文件。
原文由 GL2014 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果我在 Mac 或 Linux 中有实际文件和 Bash shell,我如何查询证书文件何时到期?不是网站,而是证书文件本身,假设我有 csr、key、pem 和链文件。
原文由 GL2014 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您只想知道证书是否已过期(或将在接下来的 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 ) .
原文由 MikeW 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
2 回答3.2k 阅读
使用
openssl
:输出形式为:
另请参阅 MikeW 的回答,了解如何轻松检查证书是否已过期,或者是否会在特定时间段内,而无需解析上述日期。