Come faccio a creare un certificato email valido per Outlook S / MIME con openssl?

8

Devo creare un certificato per la crittografia e la firma delle e-mail che deve essere utilizzato da Outlook 2003+. Sto utilizzando OpenSSL, la mia CA radice autofirmata è già stata importata nell'archivio di fiducia della CA principale. Questi sono i miei passi per creare un file di identità p12 importabile da 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

Ecco il segmento pertinente del mio 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

Ho ispezionato un altro file p12 valido per ottenere queste impostazioni e l'opzione -name cli nella terza istruzione openssl di cui sopra.

Il mio problema: Outlook soffoca ancora su questo (è valido in Thunderbird, però). Non ho il messaggio di errore in inglese (potrebbe fornire quello tedesco, però), queste sono le traduzioni approssimative delle finestre di dialogo che vedo:

  1. "Concedi l'uso di una chiave per l'applicazione: Concedi / non concedere" (potresti mostrare i dettagli chiave in basso a sinistra - dice che non c'è descrizione e nessuna informazione di contesto)
  2. "Ripeti la procedura Non è possibile accedere alla chiave protetta, assicurati che la password specificata sia valida." (L'ho fatto - ho persino provato ogni possibile variazione di password / nessuna password in openssl e Outlook! Per il prossimo passaggio, torno alla prima finestra di dialogo e clicco su "Annulla")
  3. "Errore nel sistema di sicurezza sottostante. Accesso negato!"

La mia attuale configurazione in Outlook: Firma le e-mail, trasferisci il testo e la firma in testo in chiaro e allega il certificato. Ho anche limitato l'uso dei certificati per proteggere Email e disabilitare OCSP. Quando ho importato il certificato (e sulla generazione) ho usato la stessa identica password per ogni richiesta di password e la stessa descrizione di friendlyName, CN e alias (forse questi possono essere diversi, semplicemente non volevo rischiare nulla durante il tentativo).

Davvero non capisco ciò che Outlook non mi piace / vuole dirmi. Se necessario, fornirò volentieri ulteriori dettagli.

Grazie!

    
posta Arne 24.07.2012 - 15:29
fonte

1 risposta

4

La finestra di dialogo in # 1 è prevista quando si opera in condizioni di sicurezza media. Si suppone che il sistema operativo verifichi il PIN prima di utilizzare la chiave per la prima volta.

Le finestre di dialogo in # 2 e # 3 indicano più di un problema di autorizzazioni basato su file. Stai facendo questo in Cygwin sotto Windows o un host Unix e trasferendo il file? Potrebbe esserci un problema nel chmod alla fine sotto Cygwin.

Considerare la possibilità di rimuovere le opzioni "-clrtrust -addtrust emailProtection -addreject clientAuth -addreject serverAuth -trustout" e vedere se funziona quando sono consentiti tutti gli usi previsti. Quindi inizia a ridimensionare gli usi previsti.

Ad esempio, il seguente funziona per me, ma ovviamente ha "tutti" gli usi previsti che potrebbero non essere desiderabili:

$ 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 file cnf di base:

[ 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                     = [email protected]
emailAddress           = [email protected]

Carica email.pfx nel Gestore certificati di Windows nell'archivio certificati personale. Ora, ho Outlook 2010 in esecuzione su Windows 7, quindi devo anche creare la voce che userò per le impostazioni di sicurezza predefinite. Ciò comporta l'accesso a Outlook Trust Manager (File | Opzioni | Centro protezione | Impostazioni Centro protezione | Sicurezza posta elettronica). Il raggruppamento "Email crittografato" consente di creare una nuova "Impostazione predefinita" che include il certificato appena importato. (Il pulsante "Importa / Esporta" in Outlook 2010 può essere utilizzato come metodo per importare il file .pfx nel cert mgr.)

    
risposta data 24.07.2012 - 22:39
fonte

Leggi altre domande sui tag