GNU/Linux >> Linux Esercitazione >  >> Linux

Creazione di un certificato SSL autofirmato

Questo articolo spiega come creare un certificato SSL autofirmato utilizzando il openssl strumento.

Che cos'è un certificato SSL autofirmato? #

Un certificato SSL autofirmato è un certificato firmato dalla persona che lo ha creato anziché da un'autorità di certificazione attendibile. I certificati autofirmati possono avere lo stesso livello di crittografia del certificato SSL attendibile firmato da una CA.

I browser Web non riconoscono come validi i certificati autofirmati. Quando si utilizza un certificato autofirmato, il browser Web mostra al visitatore un avviso che il certificato del sito Web non può essere verificato.

In genere, i certificati autofirmati vengono utilizzati a scopo di test o per uso interno. Non utilizzare un certificato autofirmato nei sistemi di produzione esposti a Internet.

Prerequisiti #

Il toolkit OpenSSL è necessario per generare un certificato autofirmato.

Per verificare se il openssl il pacchetto è installato sul tuo sistema Linux, apri il tuo terminale, digita openssl version e premere Invio. Se il pacchetto è installato, il sistema stamperà la versione OpenSSL, altrimenti vedrai qualcosa come openssl command not found .

Se il pacchetto openssl non è installato sul tuo sistema, puoi installarlo con il gestore pacchetti della tua distribuzione:

  • Ubuntu e Debian

    sudo apt install openssl
  • Cento e Fedora

    sudo yum install openssl

Creazione di un certificato SSL autofirmato #

Per creare un nuovo certificato SSL autofirmato, utilizza il openssl req comando:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key

Analizziamo il comando e capiamo cosa significa ciascuna opzione:

  • -newkey rsa:4096 - Crea una nuova richiesta di certificato e una chiave RSA a 4096 bit. Quello predefinito è 2048 bit.
  • -x509 - Crea un certificato X.509.
  • -sha256 - Usa 265 bit SHA (Secure Hash Algorithm).
  • -days 3650 - Il numero di giorni per cui certificare il certificato. 3650 è dieci anni. Puoi utilizzare qualsiasi numero intero positivo.
  • -nodes - Crea una chiave senza una passphrase.
  • -out example.crt - Specifica il nome file in cui scrivere il certificato appena creato. Puoi specificare qualsiasi nome di file.
  • -keyout example.key - Specifica il nome file in cui scrivere la chiave privata appena creata. Puoi specificare qualsiasi nome di file.

Per ulteriori informazioni su openssl req opzioni di comando, visita la pagina della documentazione di OpenSSL req.

Una volta premuto Invio, il comando genererà la chiave privata e ti farà una serie di domande. Le informazioni che hai fornito vengono utilizzate per generare il certificato.

Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Inserisci le informazioni richieste e premi Enter .

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:[email protected]

Il certificato e la chiave privata verranno creati nella posizione specificata. Usa il comando ls per verificare che i file siano stati creati:

ls
example.crt example.key

Questo è tutto! Hai generato un nuovo certificato SSL autofirmato.

È sempre una buona idea eseguire il backup del nuovo certificato e della chiave su una memoria esterna.

Creazione di un certificato SSL autofirmato senza prompt #

Se vuoi generare un certificato SSL autofirmato senza che ti venga richiesta alcuna domanda, usa il -subj opzione e specificare tutte le informazioni sull'oggetto:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key \
            -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----

I campi, specificati in -subj le righe sono elencate di seguito:

  • C= - Nome del paese. L'abbreviazione ISO di due lettere.
  • ST= - Nome dello Stato o della Provincia.
  • L= - Nome località. Il nome della città in cui ti trovi.
  • O= - Il nome completo della tua organizzazione.
  • OU= - Unità Organizzativa.
  • CN= - Il nome di dominio completo.

Conclusione #

In questa guida, ti abbiamo mostrato come generare un certificato SSL autofirmato utilizzando lo strumento openssl. Ora che hai il certificato, puoi configurare la tua applicazione per usarlo.

Sentiti libero di lasciare un commento in caso di domande.


Linux
  1. Che cos'è un certificato SSL?

  2. Installa un certificato SSL

  3. Acquista o rinnova un certificato SSL

  4. Come creare un certificato SSL autofirmato su Ubuntu 18.04

  5. Controlla il certificato remoto - MySQL

Come creare un certificato SSL autofirmato per Nginx su Ubuntu 18.04

Come generare certificati SSL autofirmati utilizzando OpenSSL

Strumento di verifica SSL

Come creare un certificato SSL autofirmato locale su CentOS 8

Come controllare la data di scadenza SSL su Plesk

Come ripristinare/rinnovare il certificato autofirmato cPanel/WHM?