如何读取X509 V3证书的关键用途(keyusage)?

9

我想读取证书中的密钥用途字段。在openssl中是否有可用的API?


请查看以下链接,您将获得答案:http://stackoverflow.com/questions/10011730/how-to-get-the-keyusage-value-from-the-x509-certificate - Balamurugan
3个回答

15
你可以尝试在openssl中使用以下命令。
openssl x509 -in <certificate to check> -purpose -noout -text
这将打印出证书目的列表和证书本身。

这将打印出证书目的列表和证书本身。


我需要将它转换成C代码。谢谢您的评论。我会检查这个命令的源代码。 - Balamurugan

9
7年后... 新版本的openssl可以使用-ext标志查询证书扩展。有关可用选项,请参见文档
打印密钥用途:
$> openssl x509 -noout -ext keyUsage < test.crt
X509v3 Key Usage: critical
    Digital Signature, Key Encipherment

打印扩展密钥用途:
$> openssl x509 -noout -ext extendedKeyUsage < test.crt
X509v3 Extended Key Usage: 
    TLS Web Server Authentication, TLS Web Client Authentication

请注意,如果您想一次打印多个扩展名,则需要使用逗号将它们分开,而不是多次使用-ext标志。
$> openssl x509 -noout \
   -ext keyUsage,extendedKeyUsage < test.crt

0

之前的解决方案需要在结果文件/输出中查找字符串“Key Usage”。 我有以下解决方案,可以精确地获取X509证书中“Key Usage”字符串。

openssl s_client -showcerts -connect SERVER_HERE:443 </dev/null 2>/dev/null|openssl x509 -text |grep v "$(grep -E -A1 "Key Usage")"

以上命令获取证书,解析为文本并查找字符串“Key Usage”,然后在结果中呈现下一行,该行表示X509上此特定字段的值。

//干杯


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接