S / MIME para Mac e iOS

1

Eu tenho tentado gerar certificados S / MIME para meus dispositivos MacOS e iOS e parece não funcionar. Eu pesquisei sobre este assunto e parece que keyUsage e extendedKeyUsage são necessários para que ele funcione.

These are needed to be inputed into openssl.cnf
[usr_cert]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth,emailProtection
subjectAltName=email:move

Eu adicionei essas três linhas em [usr_cert] de /System/Library/OpenSSL/openssl.cnf

Como em [CA_Default], afirma x509_extensions = usr_cert

De lá, estou emitindo os seguintes 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

Depois de fazer isso, recebo os certificados de CA e S / MIME, mas quando verifico se as extensões keyUsage e KeyUsage estão lá:

openssl x509 -text -noout -in cert.crt

eles não estão lá.

Estou editando o arquivo openssl.cnf padrão

Obrigado pela sua ajuda

    
por Nifle 09.01.2015 / 17:22

1 resposta

0

Meta: este é o OpenSSL, mas não o Mac especificamente. A maioria das coisas que o OpenSSL é usado são relacionadas à segurança. Eu sugiro tagging openssl.

Muitas das configurações no arquivo de configuração do OpenSSL, cujo padrão é um local dependente da plataforma como o que você especifica, mas pode ser substituído, são usadas por padrão somente pelos utilitários req e ca , o último dos quais foi criado precisamente para ser um mínimo de CA e emitir certificados. O principal trabalho do utilitário x509 é exibir, examinar e converter certificados; A emissão de um certificado com x509 -req -CA [-CAkey] é um complemento que não possui todos os recursos ca . Em particular, ele só adiciona extensões se você especificar na linha de comando, não no arquivo de configuração. (E não é possível transferir extensões do CSR, embora isso não pareça ser um problema para você.)

Soluções: use ca com as configurações desejadas no arquivo de configuração ou use x509 -req -CA [-CAkey] com -extfile [-extensions] apontando para um arquivo ou seção de um arquivo com as extensões desejadas - possivelmente mas não necessariamente o arquivo de configuração padrão.

Além disso: 365 dias é uma vida útil muito curta para um certificado de CA. Eu acho que você quer SAN email:copy em vez de move porque o único certificado SMIME que eu usei pessoalmente (teste da Comodo) tem meu e-mail em ambos Subject e SAN. Você provavelmente não precisa de nonRepudiation em (básico) KU; meu certificado não o tem, e em geral a ideia de que as assinaturas de chave pública poderiam apoiar o não-repúdio era popular nos anos 80, mas na prática quase nunca funcionou, então as pessoas praticamente desistiram disso. OTOH duvido que vai doer alguma coisa.

    
por 10.01.2015 / 00:14