2009-09-09 17 views
4

J'essaye de créer une fausse AC et de signer un certificat pour l'utiliser avec stunnel (qui semble juste appeler des routines OpenSSL, donc vous n'avez probablement pas besoin de connaître le programme pour vous aider :). Cependant, stunnel continue de rejeter mon certificat en disant qu'il n'est pas signé avec la bonne clé!Certificat Bad OpenSSL

Voici comment je générer mes clés et certs avec 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 

Alors mon stunnel.conf a ces entrées:

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

Lorsque je tente de commencer stunnel-je obtenir la erreur générique OpenSSL "clé ne correspond pas au certificat":

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 

J'ai fait quelque chose de mal à générer mes dossiers?

Répondre

4

Je vais résumer ce que vous avez configuré:

  1. Vous avez un certificat « CA », qui est auto-signé.
  2. Vous avez MPS_cert, qui est auto-signé.
  3. Vous avez signé MPS_cert à l'aide de la clé CA.

Si vous lisez, vous verrez la référence pour la commande X509 de OpenSSL (http://openssl.org/docs/apps/x509.html) que le paramètre -signkey indique OpenSSL à l'auto-signer le certificat fourni avec la clé privée donnée. C'est pas ce que vous voulez.

Ce que vous voulez faire est de créer une autorité de certification auto-signée, puis l'utiliser pour signer votre demande de signature de certificat et générer un certificat valide.

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 

Les options pertinentes sont -CA, -CAkey et -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 

Cela devrait donner lieu à un certificat qui est signé par votre CA, qui lui-même est auto-signé.