S / MIME para Mac e iOS

1

He estado intentando generar certificados S / MIME para mis dispositivos MacOS e iOS y parece que no funciona. He investigado sobre este asunto y parece que keyUsage y extendedKeyUsage son necesarios para que funcione.

Estos son necesarios para ser incorporados en openssl.cnf
[usr_cert]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection subjectAltName
= email: move

Agregué estas tres líneas [usr_cert]desde/System/Library/OpenSSL/openssl.cnf

Como en [CA_Default] indica x509_extensions = usr_cert

Desde allí estoy emitiendo los siguientes comandos

openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
openssl genrsa -aes256 -out cert.key 4096
openssl req -new -key cert.key -out cert.csr
openssl x509 -req -days 365 -in cert.csr -CA ca.crt -CAkey ca.key -set_serial 00 -out cert.crt
openssl pkcs12 -export -in cert.crt -inkey cert.key -name " [email protected] ”-out cert.p12

Después de hacerlo, obtengo los certificados de CA y los certificados S / MIME, pero cuando verifico si keyUsage y KeyUsage Extensions están ahí con:

openssl x509 -text -noout -in cert.crt

No están allí.

Estoy editando el archivo openssl.cnf predeterminado

Gracias por su asistencia

Nifle
fuente

Respuestas:

0

Meta: esto es OpenSSL, pero no Mac específicamente. La mayoría de las cosas para las que se usa OpenSSL están relacionadas con la seguridad. Sugeriría etiquetar openssl.

Muchas de las configuraciones en el archivo de configuración de OpenSSL, que por defecto es una ubicación dependiente de la plataforma como la que usted especifica pero puede ser anulada, se usan por defecto solo por las utilidades reqyca , la última de las cuales fue creada precisamente para ser una CA mínima y emitir certs. El trabajo principal de la x509utilidad es mostrar, examinar y convertir certificados; emitir un certificado con x509 -req -CA [-CAkey]es un complemento que no tiene todas las características que casí tiene. En particular, solo agrega extensiones si lo especifica en la línea de comandos, no en el archivo de configuración. (Y no puede transferir extensiones de la CSR en absoluto, aunque eso no parece ser un problema para usted).

Soluciones: utilizar cacon los ajustes deseados en el archivo de configuración, o utilizan x509 -req -CA [-CAkey]con -extfile [-extensions]que apunta a un archivo o una sección de un archivo con las extensiones deseadas - posiblemente, pero no necesariamente el archivo de configuración estándar.

Además: 365 días es una vida útil bastante corta para un certificado de CA. Creo que quieres SAN email:copyvez de moveporque el SMIME cert, he utilizado (ensayo de Comodo) tiene mi correo electrónico en tanto sujeto y SAN. Probablemente no necesite nonRepudiationen KU (básico); mi certificado no lo tiene, y en general la idea de que las firmas de clave pública podrían apoyar el no repudio fue popular en la década de 1980, pero en la práctica casi nunca funcionó, por lo que la gente prácticamente se dio por vencida. OTOH, dudo que lastime algo.

dave_thompson_085
fuente
cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt tiene algunas cosas que decir tanto sobre el no rechazo como sobre el correo electrónico: copiar frente al correo electrónico: mover.
Grawity