9633 Letture

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

Abbiamo più volte ricordato l'importanza derivante dall'utilizzo del protocollo HTTPS quando ci si collega con un sito web che gestisce informazioni personali.
HTTPS poggia sulla comunicazione attraverso il protocollo HTTP a cui viene però abbinata una connessione crittografata usando il protocollo Transport Layer Security (TLS) oppure il predecessore Secure Sockets Layer (SSL).

Grazie all'utilizzo della crittografia asimmetrica, le informazioni così scambiate non possono essere lette da chiunque sia posizionato lungo il tragitto (solamente mittente e destinatario - in questo caso il server remoto - possono decodificarle).

Tutti coloro che gestiscono un sito web che riceve, elabora e restituisce informazioni personali, dovrebbero valutare l'attivazione del protocollo HTTPS lato server.

Per attestare l'identità del proprio sito web è necessario utilizzare un certificato digitale valido, altrimenti i browser web andranno su tutte le furie, come spiegato al punto 1) Riconoscere tentativi di phishing dell'articolo Riconoscere virus, malware e minacce di ogni genere: Kaspersky dà le pagelle - PRIMA PUNTATA.


Per ottenere un certificato HTTPS gratuito (SSL/TLS) è possibile oggi rivolgersi a Let's Encrypt.
Let's Encrypt è una storica iniziativa promossa dalla Linux Foundation in collaborazione con Mozilla, Cisco, Akamai, EFF (Electronic Frontier Foundation) e Facebook.
L'obiettivo è quello di spronare i gestori dei siti web, soprattutto quelli che trattano informazioni sensibili, a passare a HTTPS.

Nell'articolo Come attivare HTTPS sul proprio server Linux abbiamo spiegato, passo-passo, come abilitare l'utilizzo di HTTPS - e quindi scambiare informazioni in maniera cifrata tra client e server (e viceversa) - su una macchina Linux.

Per approfondire, suggeriamo la lettura dei seguenti nostri articoli:

- Certificato di protezione del sito web: cosa fare quando c'è un problema
- Più veloce HTTP o HTTPS? Proviamo a chiarire
- Attivare HTTPS si deve, secondo Mozilla. Stop ai rinvii

Usare il certificato digitale Let's Encrypt con IIS su Windows Server

Come ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server? Let's Encrypt contente si riceverlo, gratuitamente, in pochi minuti e con uno sforzo davvero ridottissimo.

Tutte le istruzioni pubblicate sul sito ufficiale di Let's Encrypt fanno riferimento all'utilizzo del certificato digitale con un server Linux. Ma se si volesse usarlo con il server web Microsoft IIS, su Windows Server?

In anteprima per i nostri lettori pubblichiamo una procedura passo-passo ancora poco conosciuta che permette di ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS e configurarlo senza problemi su macchine Windows Server.

Configurare il certificato digitale gratuito di Let's Encrypt su IIS (Windows Server)

Le istruzioni che seguono si riferiscono al test che abbiamo effettuato utilizzando una macchina Windows Server 2008 R2 64 bit ma la procedura dovrebbe essere replicabile anche nel caso di Windows Server 2012.

1) Scaricare LetsEncrypt-Win-Simple
Sulla macchina Windows Server si deve innanzi tutto scaricare il software LetsEncrypt-Win-Simple. Per ottenere un certificato digitale valido da Let's Encrypt non si dovranno effettuare registrazioni o passaggi addizionali: penserà a tutto LetsEncrypt-Win-Simple.
L'ultima versione del programma può essere prelevata da questa pagina.

2) Estrarre il contenuto dell'archivio LetsEncrypt-Win-Simple
Il contenuto dell'archivio di LetsEncrypt-Win-Simple dovrà quindi essere estratto, sul server, ad esempio nella cartella C:\CERTIFICATI.

3) Avviare LetsEncrypt-Win-Simple
A questo punto si potrà aprire, utilizzando l'account amministratore, il prompt dei comandi quindi portarsi nella cartella di LetsEncrypt-Win-Simple.
Digitando letsencrypt e premendo il tasto Invio, si avvierà la procedura di creazione del certificato digitale

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

Inizialmente LetsEncrypt-Win-Simple chiederà di specificare un indirizzo e-mail personale che sarà usato esclusivamente per le comunicazioni relative al certificato digitale e non sarà mai reso pubblico.

Successivamente, bisognerà accettare le condizioni di licenza (Y) quindi indicare il sito web per il quale si sta chiedendo il certificato digitale.
Nell'esempio in figura, abbiamo digitato 1 per indicare il sito test.ilsw.it.

LetsEncrypt-Win-Simple indica tutti i siti web precedentemente configurati in IIS.

Il certificato digitale così creato sarà automaticamente salvato in una sottocartella di %appdata%.

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

Alla domanda Do you want to specify the user the task will run as? è possibile rispondere con Y in modo da specificare l'utente che verrà configurato per eseguire automaticamente la procedura di rinnovo del certificato.


Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

LetsEncrypt-Win-Simple provvede infatti a configurare in Windows Server un'operazione pianificata per il rinnovo automatico del certificato digitale.
Al termine della procedura, si troverà l'operazione pianificata nel Task scheduler di Windows Server.

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

4) Verificare l'avvenuta configurazione del supporto HTTPS per il sito indicato

A questo punto, portandosi nell'IIS Manager di Windows Server, selezionando il sito indicato, quindi cliccando su Bindings nella colonna di destra, si dovrebbe notare la presenza dell'indicazione riferita alla porta 443 (HTTPS).

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

Selezionando la voce relativa a HTTPS quindi premendo Edit ed infine View si potrà esaminare il certificato digitale ottenuto da Let's Encrypt.

5) Scaricare ed eseguire IIS Crypto
Per ottenere una valutazione positiva (A) nell'ambito del test di Qualys (SSL Server Test), raggiungibile a questo indirizzo consigliamo di scaricare l'utilità gratuita IIS Crypto cliccando qui ed eseguirla.

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

IIS Crypto aiuterà a disattivare tutti i protocolli, i cifrari, i meccanismi di hashing e i sistemi di scambio delle chiavi che non sono ritenuti più affidabili e che, anche nel recente passato, sono stati (e sono tutt'oggi) bersaglio di attacchi:


- Disattivare SSL 3.0 e proteggere i dati personali dall'attacco POODLE
- Heartbleed bug, quali i rischi per gli utenti ed i gestori di siti web HTTPS?

Per procedere, dopo aver avviato IIS Crypto, suggeriamo di fare clic sul pulsante Best practices quindi disattivare anche la casella MD5 nel riquadro Hashes enabled.

6) In IIS Manager, accedere alla configurazione del sito web che si sta portando su HTTPS, fare doppio clic sull'icona HTTP Response Headers quindi sul link Add nella colonna di destra.
Nella finestra che comparirà si potrà digitare quanto segue per attivare HSTS (HTTP Strict Transport Security):

Campo Name: strict-transport-security
Campo Value: max-age=15768000; includeSubdomains

Si tratta di una particolare policy che consente al server web di dichiarare che i browser e ogni altro tipo di client debbano comunicare con esso esclusivamente attraverso connessioni sicure su protocollo HTTPS. È utile per proteggere dai dirottamenti di sessione.

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

7) Installare l'estensione URL Rewrite di IIS e attivare il redirect automatico da HTTP a HTTPS

Nel caso in cui non fosse già stata installata in precedenza in IIS, si dovrà quindi installare l'estensione Microsoft URL Rewrite prelevandola da questa pagina.


Solitamente, nel caso di Windows Server a 64 bit, basta cliccare sul link x64; viceversa, bisognerà selezionare x86.

Ultimata l'installazione dell'estensione URL Rewrite per IIS, ci si dovrà portare nella cartella del sito web d'interesse, aprire il file web.config con un editor di testo ed incollare quanto segue prima della tag </system.webServer>:

<rewrite>
    <rules>
        <rule name="HTTP Redirect to HTTPS" enabled="true" stopProcessing="true">
            <match url="(.*)" ignoreCase="false" />
            <conditions>
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>


8) Riavviare il server
Dopo aver riavviato completamente la macchina Windows Server (quindi non solo IIS), collegandosi da un qualunque browser al sito appena configurato, si dovrebbe ottenere la versione HTTPS di tutte le pagine.

Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server

Un test su Qualys SSL Server per il momento non consente di ottenere una valutazione A+ ma solamente A perché ad oggi Microsoft non consente ancora la configurazione di un'impostazione accessoria (TLS_FALLBACK_SCSV) che viene considerata nelle verifiche.


Ottenere un certificato HTTPS gratuito (SSL/TLS) per IIS su Windows Server - IlSoftware.it