2009-01-13 21 views
5

Editar: No he resuelto mis problemas, pero he pasado a nuevos y más emocionantes problemas.
Dejando esto aquí en caso de que alguien tenga y perspicaz que ayudará a alguien que tropieza con esta pregunta en el futuro.Openssl problemas en la línea de comandos

Hola, Estoy intentando enviar un correo electrónico cifrado de php a Outlook. Como tal, necesito generar un certificado para importar a Outlook. No tuve ningún problema en generar un conjunto de claves utilizando openssl y el script CA.pl que viene con él, pero cuando intento ejecutar el comando para generar el archivo PKCS12 para importar a Outlook, se queja de que falta un directorio "demoCA". Parece que este directorio es una parte de openssl, y se hace referencia en la configuración de openssl ... pero no tengo idea de dónde está. He buscado en el disco de muchas maneras, desde grep hasta spotlight (en os x, aunque realmente no esperaba encontrar ningún foco), y no puedo encontrar nada.

El comando que estaba tratando de ejecutar es:

$ openssl ca -cert newcert.pem -ss_cert newcert.pem 
Using configuration from /sw/etc/ssl/openssl.cnf 
./demoCA/private/cakey.pem: No such file or directory trying to load CA private key 
19918:error:02001002:system library:fopen:No such file or directory:bss_file.c:245:fopen('./demoCA/private/cakey.pem','r') 
19918:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:247: 

Soy un poco de un novato cuando se trata de cifrado/SSL, por lo que podría estar pasando algo estúpida (estoy seguro de si, jaja).

Respuesta

6

Debe crear una nueva CA por medio de la secuencia de comandos proporcionada, que es más fácil que simplemente manejar todas las opciones de openssl. Puede hacer esto mediante openssl incluido con Cygwin dentro de Windows mismo o usar su distribución Unix favorita. Le mostraré cómo hacerlo con scripts bash (pero los scripts Perl deben ser los mismos).

$ ./CA.sh -newca 

Esto crea el directorio demoCA con el certificado CA dentro de él. Al invocar el comando anterior, se le preguntará acerca de los campos del certificado de CA (CN, OU, etc.) y la frase clave de CA privada.

Ahora puede crear solicitudes de certificados o certificados a partir de las solicitudes de certificados.

$ ./CA.sh -newreq 

Esto solicita un nuevo campo de solicitud de certificado y la frase de contraseña para encriptar la clave privada generada. Por defecto, la solicitud se deja en el mismo directorio que CA.sh (newreq.pem). Es importante que use como CN (Nombre común) la dirección de correo electrónico que tiene.

Ahora solo necesita firmarlo y tiene un certificado completo.

$ ./CA.sh -sign 

Esto generará newcert.pem que es la solicitud de certificado firmado. Usted tiene su certificado, solo necesita empaquetar el certificado y la clave privada dentro de un archivo PFX o P12, que Microsoft CSP reconoce.

Luego copie el contenido de newreq.pem y newcert.pem en un archivo.

$ cat newreq.pem > keypair.pem 
$ cat newcert.pem >> keypair.pem 

Y ahora generan archivo P12 por medio de cáscara de OpenSSL (esta vez no tenemos la ayuda de cualquier secuencia de comandos). Le solicitará la frase de contraseña que utilizó cuando se generó la solicitud y luego la contraseña de exportación (para encriptar la clave privada dentro del archivo p12).

$ openssl pkcs12 -export -in keypair.pem -out mykeypair.p12 
Enter pass phrase for keypair.pem: 
Enter Export Password: 
Verifying - Enter Export Password: 

Et voilà.Tiene un archivo PKCS # 12 que puede hacer doble clic en Windows e importarlo a su almacén de claves y usarlo como certificado de firma de correo (no recuerdo si las opciones predeterminadas son suficientes o si necesita especificar algunos atributos adicionales al crear el certificado para que Outlook lo reconozca como un certificado de firma de correo electrónico). También necesitará importar el certificado de CA como una CA confiable (copie cacert.pem en cacert.cer que está dentro del directorio demoCA y haga doble clic para importar).

+1

Gracias por la increíble respuesta. Realmente resumió toda la documentación al azar en un formulario que hizo que todo se uniera. ¡Gracias! Solo para tu información, parece que CA.pl/sh permite crear archivos PKCS # 12. CA.pl -pkcs12 "[email protected]" –

+0

Tal vez mi versión de openssl es demasiado vieja :-) –

+0

Guau, excelente respuesta, está relacionada con cosas que estoy usando también. Gracias. –

Cuestiones relacionadas