Shawn J. Goff Asked: 2012-07-07 06:34:33 +0800 CST2012-07-07 06:34:33 +0800 CST 2012-07-07 06:34:33 +0800 CST 如何使用 OpenSSL 实用程序从 x509 证书中提取 CRL 位置 772 我需要从证书颁发机构提取 crl 位置,以便我可以使用它来验证证书。除了使用选项并尝试解析输出(这似乎容易出现漏洞)之外,是否可以使用该openssl实用程序?-text certificate-authority openssl crl 2 个回答 Voted Patrick Mevzek 2018-09-29T08:29:45+08:002018-09-29T08:29:45+08:00 仍然是一种解析,但至少比 with 更精确x509。它需要改进以更好地考虑列表,这cut -b21-对于简单的 1 元素列表来说确实是一个捷径。 openssl asn1parse -in whatever.crt | grep -A 1 'X509v3 CRL Distribution Points' | tail -1 | cut -d: -f 4 | cut -b21- | perl -ne 's/(..)/print chr(hex($1))/ge; END {print "\n"}' http://cdp.rapidssl.com/RapidSSLTLSRSACAG1.crl 相比: openssl x509 -text -in whatever.crt |grep -A4 'CRL Distribution Points' X509v3 CRL Distribution Points: Full Name: URI:http://cdp.rapidssl.com/RapidSSLTLSRSACAG1.crl 或者使用任何一种编程语言,你都可以得到一些接近的东西,这取决于底层库为你解码的程度: php -r '$cert = file_get_contents("whatever.crt"); $ssl = openssl_x509_parse($cert); print_r($ssl["extensions"]["crlDistributionPoints"]);' Full Name: URI:http://cdp.rapidssl.com/RapidSSLTLSRSACAG1.crl Best Answer Gnarfoz 2012-07-07T08:16:04+08:002012-07-07T08:16:04+08:00 openssl x509有一些开关来控制输出的格式,并且可以不显示某些字段,但仅获取CRL 位置似乎是不可能的。 看来您一定要解析输出。
仍然是一种解析,但至少比 with 更精确
x509
。它需要改进以更好地考虑列表,这cut -b21-
对于简单的 1 元素列表来说确实是一个捷径。相比:
或者使用任何一种编程语言,你都可以得到一些接近的东西,这取决于底层库为你解码的程度:
openssl x509
有一些开关来控制输出的格式,并且可以不显示某些字段,但仅获取CRL 位置似乎是不可能的。看来您一定要解析输出。