【发布时间】:2012-02-08 18:32:33
【问题描述】:
如何验证以这种方式生成的 PEM 证书的密钥长度:
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
我需要的是一个使用 OpenSSL 程序的 C 函数,它对 PEM 证书执行验证(我将它用于 lighttpd HTTPS 服务器),并返回存储在证书中的密钥长度(在本例中为 1024 )。
【问题讨论】:
-
您想要的命令行是
openssl verify cert.pem和openssl x509 -in cert.pem -text(转储出证书数据,包括密钥长度),但我不知道它如何映射到 C 函数。 -
谢谢 Rup,我知道 openssl verify 命令,但我需要从 C 编程检查它,而不是从命令行。
-
我找到了一种方法;请参阅下面的代码。我在 Linux 和 Mac OS X 10.7 下对此进行了测试,但 10.7 会抱怨不推荐使用的方法。