¿Cómo creo un certificado de correo electrónico válido para Outlook S / MIME con openssl?

8

Necesito crear un certificado para el cifrado y la firma del correo electrónico que debe ser utilizado por Outlook 2003+. Estoy usando OpenSSL, mi CA raíz autofirmada ya se importa al almacén de CA raíz de confianza. Estos son mis pasos para crear un archivo de identidad p12 importable por Outlook:

openssl req -batch -newkey rsa:1024 -keyout KEY.key -out KEY.csr \
  -nodes -config openssl.cnf &&\
openssl x509 -req -sha1 -days 1000 -in KEY.csr -CA ca.crt -CAkey ca.key \
  -set_serial 1 -out KEY.crt -setalias "FRIENDLY_NAME" \
  -clrtrust -addtrust emailProtection \
  -addreject clientAuth -addreject serverAuth -trustout &&\
openssl pkcs12 -export -in KEY.crt -inkey KEY.key" -out KEY.p12 \
  -name "FRIENDLY_NAME" -passout pass:PASSWD &&\
chmod 0600 KEY_CN.{key,p12} &>/dev/null

Aquí está el segmento relevante de mi openssl.cnf :

[ usr_cert ]
basicConstraints = CA:FALSE
authorityKeyIdentifier = keyid
subjectKeyIdentifier = hash
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = critical, emailProtection
subjectAltName = email:copy
authorityKeyIdentifier = keyid
subjectKeyIdentifier = hash

Inspeccioné otro archivo p12 válido para obtener esta configuración, y la opción -name cli en la tercera declaración de openssl anterior.

Mi problema: Outlook todavía se ahoga con esto (aunque es válido en Thunderbird). No tengo el mensaje de error en inglés (aunque podría proporcionar el alemán), estas son las traducciones aproximadas de los diálogos que veo:

  1. "Otorgar el uso de una clave para la aplicación: conceder / no conceder" (puede mostrar detalles clave en la parte inferior izquierda, indica que no hay descripción ni información de contexto)
  2. "Repita el procedimiento. No se puede acceder a la clave protegida, asegúrese de que la contraseña especificada sea válida". (¡Lo hice, incluso probé todas las variaciones posibles de contraseña / sin contraseña en openssl y Outlook! Para el siguiente paso, me dirijo al primer cuadro de diálogo y hago clic en "Cancelar")
  3. "Error en el sistema de seguridad subyacente. ¡Acceso denegado!"

Mi configuración actual en Outlook: Firme correos electrónicos, transfiera texto y firma en texto simple y adjunte el certificado. También restringí el uso de certificados a secureEmail y deshabilité OCSP. Al importar el certificado (y en la generación) usé exactamente la misma contraseña para cada solicitud de contraseña y la misma descripción que friendlyName, CN y alias (tal vez esto pueda ser diferente, simplemente no quise arriesgarme nada al intentarlo). / p>

Realmente no entiendo lo que a Outlook no le gusta / quiere decirme. Si es necesario, con mucho gusto le proporcionaré detalles adicionales.

¡Gracias!

    
pregunta Arne 24.07.2012 - 15:29
fuente

1 respuesta

4

Se espera que aparezca el cuadro de diálogo en # 1 cuando se opera con seguridad media. Se supone que el sistema operativo debe verificar el PIN antes de usar la clave por primera vez.

Los cuadros de diálogo en # 2 y # 3 indican más de un problema de permisos basado en archivos. ¿Está haciendo esto en Cygwin bajo Windows o en un host Unix y está transfiriendo el archivo? Puede haber un problema en el chmod al final debajo de Cygwin.

Considere eliminar las opciones "-clrtrust -addtrust emailProtection -addreject clientAuth -addreject serverAuth -trustout" y ver si funciona cuando se permiten todos los usos previstos. Luego comience a reducir los usos previstos.

Por ejemplo, lo siguiente funciona para mí, pero obviamente tiene "todos" usos previstos que pueden no ser deseables:

$ openssl genrsa -aes128 -out email.key 2048
$ openssl req -new -key email.key -out email.csr -config email.cnf
$ openssl x509 -req -days 365 -in email.csr -CA ca.crt -CAkey ca.key -set_serial 10 -out email.crt
$ openssl pkcs12 -export -in email.crt -inkey email.key -out email.pfx

Uso un archivo cnf muy básico:

[ req ]
default_bits           = 2048
distinguished_name     = req_distinguished_name
prompt                 = no


[ req_distinguished_name ]
C                      = {Country}
ST                     = {Provice/State}
L                      = {City}
O                      = {Org}
OU                     = {Org Unit}
CN                     = user@domain.com
emailAddress           = user@domain.com

Cargue el email.pfx en el Administrador de certificados de Windows en su almacén de certificados personales. Ahora, tengo Outlook 2010 ejecutándose bajo Windows 7, así que también tengo que crear la entrada que usaré para la configuración de seguridad predeterminada. Esto implica ir al Administrador de confianza de Outlook (Archivo | Opciones | Centro de confianza | Configuración del Centro de confianza | Seguridad del correo electrónico). La agrupación de "Correo electrónico cifrado" es donde puede crear una nueva "Configuración predeterminada" que incluye el certificado recién importado. (El botón "Importar / Exportar" en Outlook 2010 se puede usar como una forma de importar .pfx en el administrador de certificados)

    
respondido por el logicalscope 24.07.2012 - 22:39
fuente

Lea otras preguntas en las etiquetas