Fidati di un certificato PEM autofirmato


23
  1. Ho impostato un server proxy con SSL utilizzando un certificato PEM. Ora, ci sono un paio di macchine di cui vorrei fidarmi automaticamente di questo certificato (senza che il browser web si lamentasse). Come posso installare un certificato PEM su ogni macchina?

  2. Inoltre, cosa è più consigliato: generare un certificato autofirmato o concatenare il certificato snakeoil?

Risposte:


10

I browser dispongono di un elenco di certificati di "autorità di certificazione" (CA) attendibili. Se il certificato di un server è firmato da uno di quei certificati CA e correttamente formato, non verrà visualizzato l'avviso SSL.

Molti browser vengono forniti con molti certificati CA comuni come Verisign, Thawte, ecc. La maggior parte dei browser consente di importare una nuova CA in questo elenco di CA affidabili.

Come la creazione del proprio certificato server autofirmato, è possibile creare il proprio certificato CA autofirmato. È quindi possibile utilizzarlo per firmare il certificato del server. Se la tua CA non è fornita da una società ben nota, cosa che non sarebbe se fosse una di quelle che hai creato, dovrà essere importata esplicitamente sul lato server.

L'ho già xcafatto prima. Ha modelli per CA e server HTTP. La procedura è questa:

  • Crea una chiave privata per la tua CA
  • Creare una CA autofirmata utilizzando questa chiave utilizzando il modello "CA"
  • Crea una chiave privata per il tuo server proxy
  • Creare una "richiesta di firma del certificato" (CSR) utilizzando la seconda chiave, facendo riferimento alla CA appena effettuata.
  • "Firma" il CSR e avrai il certificato del server proxy, che fa riferimento alla tua CA.

Sarà quindi necessario esportare (come file se si utilizza xca) il certificato CA (ma ovviamente non includere la chiave privata). Un .pemverrà generato ma è possibile modificare l'estensione a .crt. Quando un utente fa clic su di esso, verrà offerto di installarlo su Firefox e Internet Explorer, e possibilmente su altri browser principali. Per quanto riguarda l'installazione automatica di questo .crt, puoi:

  • usa i criteri di gruppo su IE
  • indirizzare gli utenti a una pagina introduttiva chiedendo loro di scaricare / installare il .crt se vogliono evitare avvisi.

È quindi possibile utilizzare le funzioni di esportazione sul certificato del server HTTP (esportare sia la chiave privata che il certificato per il lato server) da inserire sul server proxy.


17
  1. Copia il tuo certificato /etc/ssl/certssul sistema di destinazione. Quindi creare un collegamento simbolico utilizzando l'hash generato dal comando che openssl x509 -noout -hash -in ca-certificate-filesostituisce ca-certificate-filecon il nome del certificato. Il certificato dovrebbe quindi essere accettato da tutti i programmi senza il proprio archivio certificati.

    Per i programmi con il proprio archivio certificati (browser, Java e altri) dovrai importare il certificato.

  2. È meglio generare il proprio certificato autofirmato o firmato.

    È possibile che si desideri installare tinyca2e generare la propria autorità di certificazione. È possibile importare il certificato dell'autorità di certificazione come dettagliato nei passaggi precedenti. Genera e distribuisci certificati firmati per le tue applicazioni.

    Distribuire il certificato CA a quegli utenti che devono fidarsi del proprio certificato. Potrebbe essere necessario fornire informazioni su come importare il certificato. ATTENZIONE: se lo fanno, diventi un'altra CA affidabile per loro, quindi proteggi la tua CA di conseguenza.

    Molti strumenti possono anche essere configurati per fidarsi di certificati autofirmati o certificati con CA non attendibili. Di solito si tratta di un'azione una tantum. Ciò può essere più sicuro rispetto all'accettazione di un certificato CA da parte di un'autorità non sicura, solo il certificato accettato è attendibile.


Questo può essere reso più specifico? Ad esempio: l'host A invia la posta all'host B e si lamenta di non essere in grado di verificare l'identità di B. Sull'host B, abbiamo creato un certificato autofirmato: /etc/ssl/certs/ssl-cert-snakeoil.pem(questo è ciò che il pacchetto Debian ssl-certcrea per te). Lo copiamo nell'host A e lo chiamiamo /etc/ssl/certs/host-B.pem(poiché questo host potrebbe già avere un ssl-cert-snakeoil.pem). Quindi corriamo ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Alex Schröder,

1
@ AlexSchröder che ho modificato sopra. Non dovrebbero importare il certificato snakeoil, ma se hai impostato la tua CA, è ragionevole importare la tua CA. Non ho ancora identificato problemi di fiducia tra i server SMTP. Alla maggior parte dei clienti può essere detto di fidarsi dei singoli certificati.
BillThor,

Grazie. Ho trovato questa domanda mentre cercavo una spiegazione per una voce di registro che sto ricevendo. La spiegazione che ho scoperto è che dove A spedirà posta a B, A riferirà che non è stato possibile verificare l'identità di B.
Alex Schröder,

Questo e 'esattamente quello che stavo cercando! -- grazie! Ora posso usare davfs per montare il mio webDAV protetto senza troppi fastidi.
Wyatt8740,

13

Su Debian e Ubuntu dovete copiare il certificate.pemper /usr/local/share/ca-certificates/certificate.crte quindi eseguire dpkg-reconfigure ca-certificates. /etc/ssl/certsè gestito da quel comando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.