如何从证书文件本身(.p12)确定 SSL 证书到期日期
Posted
技术标签:
【中文标题】如何从证书文件本身(.p12)确定 SSL 证书到期日期【英文标题】:How to determine SSL cert expire date from the cert file itself(.p12) 【发布时间】:2015-04-07 01:37:20 【问题描述】:如果我在 Mac 中有实际文件 (.p12) 和 Bash shell,如何提取证书和密钥文件以及证书到期日期?假设我有 csr(.p12),密钥文件。
提前致谢!
【问题讨论】:
【参考方案1】:从 pkcs12 文件中提取 client 证书并打印其结束日期:
openssl pkcs12 -in certificate.p12 -clcerts -nodes | openssl x509 -noout -enddate
如果您不包含 -clcerts 选项,您可能会从 CA 证书而不是您自己的证书中获取结束日期。多个 CA 证书通常包含在文件中,作为 chain of trust 的一部分。
【讨论】:
【参考方案2】:这是您在 Windows 上的操作方式:
certutil -dump "file.pfx"
附:我知道这个问题特别提到了 Mac,这是以防万一 Google 将您发送到此处(就像它发送给我一样)。
【讨论】:
感谢您的详尽回答!我在谷歌上搜索 Windows 解决方案并在这里加载:)【参考方案3】:您可以在不使用中间文件的情况下将第一个答案设为单行:
openssl pkcs12 -in certificate.p12 -nodes | openssl x509 -noout -enddate
【讨论】:
【参考方案4】:您可以使用 openssl 使用以下命令将证书从 .p12 文件提取到 .pem 文件:
openssl pkcs12 -in certificate.p12 -out certificate.pem -nodes
然后,您可以使用以下命令从 .pem 文件中的证书中提取到期日期:
cat certificate.pem | openssl x509 -noout -enddate
【讨论】:
我收到了notAfter=Oct 24 21:01:55 2017 GMT
,但我知道这个证书已经过期。有什么想法吗?
你的意思是它可能在撤销名单上? en.wikipedia.org/wiki/Certificate_revocation_listsecurity.stackexchange.com/questions/58301/…
正如 Maciek D. 下面的回答所示,您可以在一行中执行这两个命令,而无需使用中间的 certificate.pem 文件。
只测试证书的当前有效性,您可以指定一个有效期,如下所示:***.com/a/31718838/1755628
这个答案相当具有误导性。正如WhyNotHugo 上面提到的,他看到了奇怪的结果。下面大卫的回答对此给出了可能的解释。上述方法是提取根证书 (CA) 并显示其到期日期,而不是可能是 OP 想要的客户端证书。所以下面来自@David 的答案应该是被接受的,而不是这个。以上是关于如何从证书文件本身(.p12)确定 SSL 证书到期日期的主要内容,如果未能解决你的问题,请参考以下文章