Come posso creare un certificato SSL autofirmato?

59

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?

    
posta Stefano Palazzo 17.06.2011 - 08:35

2 risposte

84

Ubuntu, anche il sapore "minimale", viene fornito con il pacchetto ssl-cert preinstallato, il che significa che non devi fare nulla.

I file che stai cercando sono già presenti nel tuo sistema:

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


Avanzate

Se per qualche motivo hai bisogno di creare un nuovo certificato, puoi eseguire

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

Se si desidera modificare la data di scadenza del certificato, è possibile modificare lo script make-ssl-cert in /usr/sbin/make-ssl-cert . Intorno come 124 c'è una linea simile a questa:

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

Dove puoi modificare la data di scadenza aggiungendo l'argomento -days :

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

Puoi trovare più opzioni nella pagina di manuale di req .

    
risposta data Stefano Palazzo 17.06.2011 - 08:36
23

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

Per prima cosa generi le chiavi per la Certificate Signing Request (CSR):

openssl genrsa -des3 -out server.key 2048

Dipende da te inserire una passphrase o meno. Se lo fai, ogni volta che (ri) inizi un servizio che firma questo certificato, dovrai fornire la passphrase. Otoh puoi creare una chiave "non sicura" senza 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 può essere generato 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.

    
risposta data nietonfir 27.05.2013 - 16:01

Leggi altre domande sui tag