Pregunta

Editar: No he resuelto mis problemas, pero he pasado a problemas nuevos y más emocionantes.
Dejando esto aquí en caso de que alguien lo haya hecho y sea perspicaz, eso ayudará a alguien que tropiece con esta pregunta en el futuro.

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 problemas para generar un conjunto de claves usando openssl y el script CA.pl que viene con él, pero cuando intento ejecutar el comando para generar el archivo PKCS12 para importarlo en Outlook, se queja de una falta de "demoCA". directorio. Parece que este directorio es parte de openssl, y está referenciado en la configuración de openssl ... pero no tengo idea de dónde está. He buscado la unidad de muchas maneras, desde grep hasta spotlight (en os x, aunque realmente no esperaba que spotlight encontrara nada), y no puedo encontrar nada.

El comando que estaba intentando 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 novato cuando se trata de cifrado / SSL, por lo que podría estar perdiendo algo estúpido (estoy seguro, jaja).

¿Fue útil?

Solución

Debería crear una nueva CA mediante el script proporcionado, que es más fácil que simplemente manejar todas las opciones de openssl. Puede hacer esto por medio de openssl incluido con Cygwin dentro de Windows o usar su distribución favorita de Unix. Le mostraré cómo hacerlo con scripts de bash (pero los scripts de perl deberían ser los mismos).

$ ./CA.sh -newca

Esto crea el directorio demoCA con el certificado de 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 de contraseña de la clave privada de CA.

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

$ ./CA.sh -newreq

Esto solicita nuevos campos de solicitud de certificado y la frase de contraseña para cifrar 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 tenga.

Ahora solo necesita firmarlo y tiene un certificado completo.

$ ./CA.sh -sign

Esto generará newcert.pem, que es la solicitud de certificado firmada. Tiene su certificado, solo necesita empacar 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 genera el archivo P12 por medio del shell openssl (esta vez no tenemos la ayuda de ningún script). Le pedirá la frase de contraseña que utilizó cuando se generó la solicitud y luego la contraseña de exportación (para cifrar 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 & # 224 ;. Tiene un archivo PKCS # 12 en el que puede hacer doble clic en Windows e importarlo a su almacén de claves y usarlo como un 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 deberá importar el certificado de CA como una CA de confianza (copie cacert.pem en cacert.cer que está dentro del directorio demoCA y haga doble clic para importar).

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