gpt4 book ai didi

openssl - 如何检查 SSL/TLS 证书的主题备用名称?

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:08 26 4
gpt4 key购买 nike

有没有办法以编程方式检查 SAN SSL 证书的主题备用名称?

例如,使用以下命令我可以获得很多信息但不是所有 SAN:

openssl s_client -connect www.website.example:443

最佳答案

要获取证书的主题备用名称 (SAN),请使用以下命令:

openssl s_client -connect website.example:443 </dev/null 2>/dev/null | openssl x509 -noout -text | grep DNS:

首先,此命令连接到我们想要的站点(website.example,SSL 端口 443):

openssl s_client -connect website.example:443

然后将 (|) 管道化到此命令中:

openssl x509 -noout -text

这会获取证书文件并输出其所有有趣的细节。 -noout 标志阻止它输出我们不需要的(base64 编码的)证书文件本身。 -text 标志告诉它以文本形式输出证书详细信息。

通常会有大量我们不关心的输出(签名、颁发者、扩展等),因此我们将那些通过管道传输到一个简单的 grep 中:

grep DNS:

由于 SAN 条目以 DNS: 开头,这只会返回包含它的行,去除所有其他信息并为我们留下所需的信息。

您可能会注意到该命令并没有完全退出; openssl s_client 实际上充当客户端并保持连接打开,等待输入。如果您希望它立即退出(例如,解析 shell 脚本中的输出),只需将 echo 通过管道传递给它:

echo | openssl s_client -connect website.example:443 | openssl x509 -noout -text | grep DNS:

如何直接从文件中获取 SAN?

为此,您不需要openssl s_client 命令。只需在 openssl x509 命令上添加 -in MyCertificate.crt 并再次通过 grep 进行管道传输,例如:

openssl x509 -noout -text -in MyCertificate.crt | grep DNS:

关于openssl - 如何检查 SSL/TLS 证书的主题备用名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13127352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com