2009-09-09 2 views
4

Я пытаюсь сделать поддельный CA и подписывать сертификат с ним для использования с stunnel (который, как представляется, вызывает процедуры OpenSSL, поэтому вам, вероятно, не нужно знать программу, чтобы помочь :). Тем не менее, stunnel продолжает отклонять мой сертификат, говоря, что он не подписан с помощью правильного ключа!Bad OpenSSL certificate

Это, как я генерируя свои ключи и сертификаты с помощью OpenSSL:

openssl genrsa -out ca_key.pem 1024 

openssl req -config ./root2.cfg -new -sha1 -x509 -key ca_key.pem -out ca_cert.pem -subj "/CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software" 

openssl genrsa -out MPS_key.pem 1024 

openssl req -config ./MPS2.cfg -new -sha1 -key MPS_key.pem -out MPS_cert_req.pem -subj "/CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software" 

openssl x509 -req -in MPS_cert_req.pem -signkey ca_key.pem -out MPS_cert.pem -extensions MPS_ext 

Тогда мой stunnel.conf имеет следующие данные:

CAfile = ca_cert.pem 
key = MPS_key.pem 
cert = MPS_cert.pem 

Когда я пытаюсь запустить Stunnel я получаю общий ключ OpenSSL «ключ не соответствует сертификату»:

2009.09.09 16:36:04 LOG3[492:172]: SSL_CTX_use_RSAPrivateKey_file: B080074: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch 

Я сделал что-то неправильно в создании мои файлы?

ответ

4

Я резюмировать, что у вас есть установка:

  1. у вас есть «CA» сертификат, который является самозаверяющим.
  2. У вас есть MPS_cert, который является самозаверяющим.
  3. Вы подписали MPS_cert с помощью ключа CA.

Если вы читали ссылку для команды x509 OpenSSL, (http://openssl.org/docs/apps/x509.html) вы увидите, что -signkey параметр предписывает OpenSSL самостоятельно подписать прилагаемый сертификат с указанным закрытым ключом. Это не что вы хотите.

Что вы хотите сделать, это создать самозаверяющий ЦС, а затем использовать его для подписания CSR и создания действительного сертификата.

openssl verify ca_cert.pem 
ca_cert.pem: /CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software 
error 18 at 0 depth lookup:self signed certificate 
OK 

openssl verify MPS_cert.pem 
MPS_cert.pem: /CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software 
error 18 at 0 depth lookup:self signed certificate 
OK 

Соответствующие параметры -ca, -CAkey и -set_serial

openssl x509 -CA ca_cert.pem -CAkey ca_key.pem -set_serial 1 -req -in MPS_cert_req.pem -out MPS_cert2.pem -days 365 

Это должно привести к сертификату, который подписывается ЦС, который сам по себе самозаверяющими.

Смежные вопросы