Pregunta

Estoy tratando de hacer una CA falsa y firmar un certificado para usar con stunnel (que parece estar llamando a rutinas OpenSSL, por lo que probablemente no necesite conocer el programa para ayudar :). Sin embargo, Stunnel sigue rechazando mi certificado diciendo que no está firmado con la clave correcta.

Así es como estoy generando mis claves y certificados con 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

Entonces mi stunnel.conf tiene estas entradas:

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

Cuando intento iniciar Stunnel, obtengo la clave genérica OpenSSL " no coincide con el certificado " error:

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

¿Hice algo mal al generar mis archivos?

¿Fue útil?

Solución

Resumiré lo que ha configurado:

  1. Tienes un " CA " certificado, que está autofirmado.
  2. Tienes MPS_cert, que está autofirmado.
  3. Firmaste MPS_cert usando la clave CA.

Si lee la referencia para el comando x509 de OpenSSL ( http://openssl.org/docs /apps/x509.html ) verá que el parámetro -signkey le indica a OpenSSL que firme automáticamente el certificado suministrado con la clave privada dada. Esto es no lo que quieres.

Lo que desea hacer es crear una CA autofirmada y luego usarla para firmar su CSR y generar un certificado válido.

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

Las opciones relevantes son -CA, -CAkey y -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

Esto debería dar como resultado un certificado firmado por su CA, que a su vez está autofirmado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top