Generare un certificato auto-firmato valido per Apache e Chrome
Generazione del certificato
Assumendo che siate su Windows, che abbiate installato OpenSSL in C:\OpenSSL-Win32\ e che il nome del dominio locale sia nullalo.local, potete lanciare il seguente comando al prompt:
C:\OpenSSL-Win32\bin\openssl.exe req -x509 -config C:\OpenSSL-Win32\bin\openssl.cfg -nodes -days 365 -newkey rsa:2048 -reqexts SAN -extensions SAN -keyout nullalo.local.key -out nullalo.local.crt
Vediamo il significato dei parametri di questo comando:
- x509 è lo standard del certificato (X.509 v3)
- nodes sta per “No DES”, e indica che la vostra chiave privata non sarà crittografata in un file PKCS#12 utilizzando l’algoritmo 3DES-CBC
- days è il numero di giorni di validità a partire dalla data corrente (nell’esempio, 365 giorni – 1 anno a partire da ora)
- newkey genera una nuova chiave RSA di dimensione ‘bit’ (nell’esempio, 2048 bit)
- reqexts specifica la sezione delle estensioni per le richieste (nel nostro caso, SAN – ha la precedenza sul valore nel file di configurazione)
- extensions specifica la sezione delle estensioni per i certificati (nuovamente SAN – ha la precedenza sul valore nel file di configurazione)
- keyout scrive la chiave privata su un file
- out scrive il certificato su un file
Vi verranno chieste alcune informazioni sul certificato: è molto importante, per le versioni precedenti di Google Chrome e per altri browser che, alla richiesta del Common Name, inseriate il vostro DNS primario (in questo caso, nullalo.local).
Questo comando genererà, nella directory corrente, due file: la chiave privata (nullalo.local.key) e il certificato auto-firmato (nullalo.local.crt).
4 Commenti
Thanks a ton!!
This tutorial worked for me perfectly.
Davvero interessante 🙂 Grazie
Hi,
I install SELF-SIGNED CERTIFICATE on my site http://www.nspiel.de/ , and check on ssllabs.com it said: NOT TRUSTED.
What can I do now?
This procedure is for LOCAL certificates. For an online website, you have to use Let’s Encrypt or something similar, but in the meanwhile I see you already solved your issue 🙂