KFM*_*KFM 7 certificate openssl
我混合使用了 Windows、Linux 和 Mac,并注意到每个操作系统使用默认工具显示证书详细信息的方式存在很大差异。
Windows 显示证书详细信息的方式非常简洁。具体来说,证书链。以截图为例。
它再次出现在 Windows 中,但使用的是该
certutil
工具。(好吧,它正在检查一个 pfx,但你明白了)。
但是在 Mac 上,这就是它在
Keychain Access
.
正如您所看到的,它没有一个很好的分层视图,可以轻松识别 Windows 或
certutil
显示的证书链- 至少对于我(可能)未经训练的眼睛来说不是这样。我也没有想出一种方法来显示证书链openssl
,例如,以下命令openssl x509 -in certificate.crt -text
不显示分层链 - 仅显示颁发者。那么有没有办法使用openssl
或原生 Mac 工具查看证书链,无论是文本还是图像?
[编辑]:我经常使用整个证书链(禁止根)创建 PFX 文件,以便在我工作的公司内分发。作为该过程的一部分,我会在将其传递给openssl
PFX之前仔细检查我从颁发 CA 下载的证书是否正确以及它们的顺序是否正确。所以要清楚,我在质疑如何在我的计算机上查看我正在本地处理的证书链。
使用showcerts
:
openssl s_client -showcerts -connect www.serverfault.com:443
Run Code Online (Sandbox Code Playgroud)
为简洁起见,删除了一些信息的输出:
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = *.stackexchange.com
verify return:1
---
Certificate chain
0 s:/CN=*.stackexchange.com
i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
*REMOVED*
-----END CERTIFICATE-----
1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
i:/O=Digital Signature Trust Co./CN=DST Root CA X3
-----BEGIN CERTIFICATE-----
*REMOVED*
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=*.stackexchange.com
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
Run Code Online (Sandbox Code Playgroud)
小智 6
从证书捆绑中,您可以使用crl2pkcs7
不限于 CRL:
openssl crl2pkcs7 -nocrl -certfile server_bundle.pem | openssl pkcs7 -print_certs -noout
Run Code Online (Sandbox Code Playgroud)
从实时服务器中,我们需要一个额外的阶段来获取列表:
echo | openssl s_client -connect host:port [-servername host] -showcerts | openssl crl2pkcs7 -nocrl | openssl pkcs7 -noout -print_certs
Run Code Online (Sandbox Code Playgroud)
-servername
如果您的主机服务于多个域,请使用该参数来获取正确的证书。