我正在开发一个自动CA,用于在Twisted Web
和M2Crypto
上运行的内部基础架构。 CA有其关键。其他机器可以使用CSR作为正文发送GET请求。假设事情已经验证,Helios
服务器应该在正文中使用相应的证书进行响应。
应用程序的完整源代码和测试文件位于:
当前所有内容都有效(通过证书回复的CSR请求),但验证证书除外:
root@helios:~/helios-ca# openssl verify -CAfile ca.crt test.pem
test.pem: /C=US/ST=California/L=San Francisco/O=Pantheon Systems, Inc./OU=Infrastructure/CN=one.com/emailAddress=support@getpantheon.com
error 7 at 0 depth lookup:certificate signature failure
4280:error:04077068:rsa routines:RSA_verify:bad signature:rsa_sign.c:255:
4280:error:0D0C5006:asn1 encoding routines:ASN1_item_verify:EVP lib:a_verify.c:173:
如果我使用OpenSSL从shell签署测试证书,事情就会正确验证。 Helios中的签名代码一定有问题。
这是一个相关的问题:
不幸的是,从上一个问题链接的资源都对CA和最终证书使用相同的密钥对。由于显而易见的原因,这很愚蠢,这使得这些示例对现实世界的PKI无益。