ChromeLinuxProgrammazioneStrumenti Web

Generare un certificato auto-firmato valido per Apache e Chrome

Nel nostro precedente articolo, abbiamo visto come generare un certificato auto-firmato per lo sviluppo di siti web su localhost, e come farlo in modo che il browser Google Chrome non restituisca il ben noto avviso “NET::ERR_CERT_AUTHORITY_INVALID” .

Purtroppo, per Chrome 58 e successivi vi attende un altro avviso. Questa volta è “NET::ERR_CERT_COMMON_NAME_INVALID” oppure “La connessione non è privata“, dal momento che (come potete leggere qui da Google) “la corrispondenza tra il nome del dominio e il certificato del sito viene eseguita solo utilizzando l’estensione subjectAlternativeName e non mediante l’estensione commonName“.

Pertanto, dobbiamo riemettere il nostro certificato auto-firmato per includere anche il subjectAlternativeName.

A questo scopo, utilizzeremo OpenSSL e vedremo come installare e configurare questo nuovo certificato in Apache.

Configurazione OpenSSL

La prima cosa da fare è installare OpenSSL. Al momento della redazione di questo articolo, ho scaricato OpenSSL v1.1.0g. Se siete su Windows, potete scaricare il pacchetto di installazione al seguente URL:

Win32 OpenSSL v1.1.0g

ma naturalmente potete utilizzare la stessa versione anche su Linux, in funzione della vostra distribuzione (CentOS, Debian, Ubuntu e così via).

Una volta installato OpenSSL, abbiamo bisogno di apportare qualche modifica al suo file di configurazione, per gestire il Subject Alternative Name (SAN).

Pertanto, assumendo che nullalo.local sia l’alias di dominio locale per il quale è necessario un certificato auto-firmato, modificate il file /bin/openssl.cfg e aggiungete la seguente sezione (ad es. alla fine del file o di un’altra sezione):


[SAN]
subjectAltName=DNS:nullalo.local,DNS:www.nullalo.local

Qui abbiamo creato due nomi alternativi, nullalo.local e www.nullalo.local per mostrarvi la sintassi corretta per aggiungere più DNS (Domain Name System), ma se utilizzate un solo DNS (nessun ServerAlias in Apache), sarà sufficiente inserire solo la prima voce:


[SAN]
subjectAltName=DNS:nullalo.local

Ora, tutto ciò che dovete fare è generare la chiave privata e il certificato utilizzando OpenSSL.

Articolo precedente

Windows 7 non si avvia

Articolo successivo

Come recuperare email cancellate definitivamente in Outlook

Fulvio Sicurezza

Fulvio Sicurezza

4 Commenti

  1. Arvind Kumar Jha
    4 dicembre 2018 at 08:22 — Rispondi

    Thanks a ton!!
    This tutorial worked for me perfectly.

  2. 16 dicembre 2018 at 13:18 — Rispondi

    Davvero interessante 🙂 Grazie

  3. 21 gennaio 2020 at 06:06 — Rispondi

    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?

    • Fulvio Sicurezza
      22 gennaio 2020 at 10:22 — Rispondi

      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 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *