Я работаю над автоматизированным центром сертификации для внутренней инфраструктуры, которая работает на Twisted Web
и M2Crypto
. У CA есть свой ключ. Другие машины могут отправлять запросы GET с CSR в качестве тела. Предполагая, что все подтверждено, сервер 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 для подписи тестового сертификата из оболочки, все проверяется корректно. Должно быть что-то не так с кодом подписи в Гелиосе.
Это связанный вопрос:
К сожалению, ресурсы, связанные с этим предыдущим вопросом, используют одну и ту же пару ключей для CA и окончательного сертификата. Это глупо по очевидным причинам и делает эти примеры совершенно бесполезными для реальной ИПК.