Come posso creare un certificato SSL autofirmato?


64

Ho impostato SSL sul mio server web, ora ho bisogno di due file:

  • un certificato
  • una chiave di certificato

Come posso creare un certificato autofirmato a scopo di test?

Risposte:


93

Ubuntu, anche dal sapore "minimal", viene fornito con il ssl-certpacchetto preinstallato, il che significa che non è necessario fare nulla.

I file che stai cercando sono già sul tuo sistema:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key


Avanzate:

Se per qualche motivo è necessario creare un nuovo certificato, è possibile eseguire

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

Se vuoi cambiare la data di scadenza del tuo certificato, puoi manipolare lo script make-ssl-cert su /usr/sbin/make-ssl-cert. Intorno come 124 c'è una linea simile a questa:

openssl req -config $TMPFILE -new -x509 -nodes \ 

Dove è possibile modificare la data di scadenza aggiungendo l' -daysargomento:

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

Altre opzioni sono disponibili nella pagina di manuale direq .


10
ubuntu-server 12.04 (immagine cloud AMI) non ha installato ssl-cert di default. Ma una volta installato ssl-cert - /etc/ssl/certs/ssl-cert-snakeoil.pem diventa automaticamente disponibile.
Stann,

make-ssl-cert prende la lunghezza della chiave (e altre impostazioni) da usare /usr/share/ssl-cert/ssleay.cnf.
Tim Smith,

Nel tentativo di testare un sito Web in un'istanza di un vagabondo locale, volevo che Google Chrome si comportasse come se fosse un certificato del tutto normale. Ho dovuto prima impostare il nome host della VM in modo che corrispondesse all'URL di test (ad es. www.test.mydomain.com) Usando il hostnamecomando nella CLI della VM. Quindi, rigenerando la chiave come suggerito, con --force-overwrite, il Nome comune (CN) della chiave corrispondeva quindi all'URL del test. Infine, sul computer host, l'installazione della chiave come autorità di certificazione radice attendibile (nelle Impostazioni di Chrome / Avanzate) mi ha dato l'ambita barra degli indirizzi verde.
Buttle Butkus,

1
il mio certificato di 9 anni ha smesso di funzionare con il mio aggiornamento a debian 10, quindi il make-ssl-certcomando mi ha salvato la giornata!
Jayen,

23

Come già accennato, Ubuntu Server viene fornito con gli strumenti necessari. A seconda della versione del tuo server dovrai consultare la documentazione specifica . Proverò a riassumere il processo di generazione del certificato autofirmato dell'attuale LTS (12.04) .

Innanzitutto, generi le chiavi per la Richiesta di firma certificato (CSR):

openssl genrsa -des3 -out server.key 2048

Sta a te inserire una passphrase o no. In tal caso, ogni volta che (ri) avvii un servizio per assegnare quel certificato, dovrai fornire la passphrase. Otoh puoi creare una chiave "insicura" senza una passphrase da quella sicura:

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

E ora creerai il CSR dalla chiave. Con il CSR e la chiave è possibile generare un certificato autofirmato:

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

L'ultimo passo consiste nell'installare il certificato e la chiave, in Debian / Ubuntu di solito in /etc/ssl:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

E infine le applicazioni che utilizzano il certificato / chiave devono essere configurate di conseguenza.

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.