Contatti: info-line 011.9969939 | info@solidweb.it

Come reindirizzare automaticamente da http ad https su framework Asp.Net e web server IIS

Perchè usare https?

https è il protocollo che consente lo scambio sicuro dei dati tra un client, in questo caso il browser che usiamo per navigare, ed il server al quale i dati vengono richiesti, in questo caso il sistema che ospita il sito web sul quale stiamo navigando.

Senza entrare troppo nei tecnicismi possiamo dire che quando il browser cerca di navigare su un sito protetto tramite https il dialogo con il sistema che fornisce la pagina da navigare viene protetto in modo da non essere leggibile da qualcuno interessato ad intercettarne il contenuto e carpirne i dati che vengono scambiati, per esempio per intercettare un account utente e la relativa password.

Potrebbe sembrare una precauzione eccessiva, o che gli sguardi indiscreti vengano piuttosto indirizzati verso "elementi maggiormente sensibili", oppure, ancora, che mettere in funzione un sistema per intercettare i nostri dati sia così complesso da non essere implementato da nessuno e quindi che si possa dormire sonni tranquilli.

In effetti non è così, e soprattutto siti web in cui vengano scambiati dati come nome utente e password, o peggio ancora informazioni relative ad una carta di credito come in un e-commerce, devono assolutamente essere protetti tramite questo tipo di servizio.

E poi? Ci sono altre ragioni valide?

Se questo non fosse sufficiente per convincerti che devi usare https sul tuo sito web, devi sapere che a partire da gennaio 2017 sia Google Chrome che Mozilla Firefox, due tra i browser più utilizzati in assoluto, segnaleranno ai loro utenti i siti che non utilizzano il protocollo https nei casi in cui invece venga ritenuto necessario la presenza di questo livello di sicurezza.

Inoltre ad agosto 2017 Google ha inviato la seguente comunicazione a tutti i webmaster:

A partire da ottobre 2017, Chrome (versione 62) mostrerà l'avviso "NON SICURO" quando gli utenti inseriscono del testo in un modulo su una pagina HTTP e su tutte le pagine HTTP aperte con la modalità di navigazione in incognito.
...
Il nuovo avviso fa parte di un piano a lungo termine volto a contrassegnare come "non sicure" tutte le pagine pubblicate tramite il protocollo HTTP.


(ti ricordiamo che ad oggi Google Chrome è il browser più utilizzato in assoluto, quindi la maggior parte degli utenti che arrivano sul tuo sito riceveranno questo avviso se non avrai implementato il protocollo sicuro https).

Quali conseguenze possiamo immaginare? Molto probabilmente gli utenti saranno intimoriti da segnalazioni di questo tipo, e possiamo presumere che andranno a fare le loro ricerche altrove, magari sul sito web del tuo concorrente che invece ha attivato https. E questo non è quello che vuoi che accada, vero?!?

Adesso che ti sei convinto ad alzare il livello di sicurezza sul tuo sito web, forse ti stai facendo qualche domanda...

Cosa serve per attivare un servizio di sicurezza per il sito web?

Lo scambio dei dati protetto è possibile grazie al fatto che sul sistema che fornisce il servizio viene installato un cosiddetto certificato SSL (Secure Sockets Layer) emesso da una entità terza riconosciuta come ente certificatore qualificato, in grado di assicurare che quel sistema sia effettivamente chi dice di essere, e di fornire un sistema in grado di criptare la trasmissione dei dati tramite una chiave di cifratura univoca.

Quindi, l'elemento fondamentale per il funzionamento di tutto il meccanismo è il certificato SSL che, tramite una apposita procedura ci verrà rilasciato da una entità autorizzata a farlo.

Cosa succede dopo aver installato il certificato SSL?

Una volta installato il certificato sul nostro server web, il browser dell'utente che lo sta navigando, mostrerà un lucchetto di colore verde a fianco dell'indirizzo del nostro sito, come mostrato nella figura seguente:

come appare il lucchetto verde che sta ad indicare che il sito è sicuro

La procedura per la richiesta e generazione del certificato SSL

Per ottenere il certificato SSL è necessario seguire una procedura che consiste nei seguenti passaggi:

  • Generare sul proprio web server il CSR (Certificate Signing Reques)
  • Inviare il codice CSR ad un ente qualificato per il rilascio del certificato SSL
  • Ricevere il certificato SSL (che non è niente altro che un file)
  • Installarlo sul proprio server web

L'ultimo passaggio è quello più tecnico all'interno di questa fase della procedura di messa in sicurezza della comunicazione del sito, ed è differente a seconda del web server utilizzato.

Dopo questa procedura rimangono ancora alcuni passaggi da fare se si vuole mantenere il posizionamento raggiunto sui motori di ricerca, ed in particolare è necessario fare in modo che in qualsiasi condizione l'utente digiti o acceda alla URL del nostro sito (solo con www. oppure digitando ancora il vecchio http://), venga sempre presentata la versione agganciata al certificato SSL, quindi venga rimandato alla versione https.

Questo si fa tramite quello che viene chiamato "redirect 301", cioé utilizzando un sistema standard e universalmente riconosciuto, in base al quale si comunica al browser dell'utente che la versione corretta da richiamare è quella che inizia con https://

Questo sui sistemi basati su sistemi operativi Linux, quindi per esempio quelli che utilizzano CMS come Wordpress o Joomla, si fa agendo su un particolare file di configurazione, il cosiddetto .htaccess. Che però non esiste nel mondo dei web server basati su tecnologia Microsoft, quindi su server Windows.

Al di la del sistema operativo che ospita il sito, è ancora necessario individuare se stiamo parlando di un server web ospitato in un ambiente a nostra totale disposizione, come per esempio un nostro server proprietario oppure un sistema in housing presso un provider (quindi una macchina di nostra proprietà ma ospitata in una server farm di un provider), oppure ancora di una VPS, quindi sistema dedicato ma fisicamente ubicato anche in questo caso presso un provider, oppure se stiamo parlando in un sito web ospitato in un hosting condiviso. In quest'ultimo caso si tratta di un sistema completamente gestito e governato dal provider che fornisce il servizio, e per il quale non si ha accesso completo alle parti di configurazione.

Le problematiche di https legate ai server IIS su Windows

Nel caso di un server a cui si ha accesso totale, anche per i server web basati su Windows e quindi su IIS (Internet Information Server) è possibile impostare a proprio piacimento tutte le configurazioni, quindi anche il redirect 301.

Ma quando non si ha l'accesso totale al server, come è il caso di un hosting condiviso, non è possibile accedere alla configurazione di tutto quanto necessario per forzare la redirezione da http ad https.

In questo caso ci viene in aiuto il file di configurazione del sito web, che nel framework Asp.net si chiama Web.config.

Per forzare il browser a fare la propria richiesta ad una risorsa su protocollo sicuro, quindi su https invece che sul semplice http, sarà necessario aggiungere la seguente sezione di configurazione all'interno del proprio Web.config:

Come configurare web.config per forzare apertura risorse in https su asp.net e IIS

Una volta aggiunta questa sezione tutti i browser verranno forzati ad eseguire le richieste di accesso al sito tramite il protocollo https.

Conclusioni

Installare un certificato SSL non è più una opzione, ma sta diventando estremamente necessario, tanto che molti provider iniziano a fornirlo gratuitamente con i propri piani di hosting (proprio in concomitanza con il rilascio dei nuovi allarmi che lanceranno Chrome e Firefox).

Diventa quindi necessario prepararsi e predisporre tutto il necessario per affrontare questa nuova situazione del web, e per chi (come noi) utilizza anche il framework Microsoft Asp.net, è necessario andare a scovare alcune piccole chicche per far funzionare tutto quanto anche quando ci si muove su piattaforme non proprietarie o su cui non si ha accesso completo.

Autore: | Data di pubblicazione: 04 Gennaio 2017 | Modificato il 22 Agosto 2017
Asp.net ed IIS, il framework ed il web server di Microsoft
Sei interessato a valutare i nostri servizi?

Contattaci per valutare i nostri servizi




Potrebbe interessarti anche:

Usare GTM

Come utilizzare Google Tag Manager nei tuoi progetti


Sito web aziendale

Alcune considerazioni sui siti web aziendali


Relizzazione siti web e posizionamento sui motori di ricerca - Torino

Sei interessato a ricevere in anteprima gli articoli del nostro blog? Iscriviti alla nostra newsletter

GARANZIA DI RISERVATEZZA (ai sensi del D: Lgs:196/2003) i dati personali sono trattati in forma automatizzata al solo fine di poter rispondere alla presente richiesta. Il conferimento dei dati è facoltativo ma necessario per l'invio della richiesta. I dati non saranno divulgati a terzi. Non sarà possibile inviare la richiesta fin tanto che non si accettano le clausole relative alla garanzia di riservatezza


Per maggiori dettagli visitare l'informativa sulla privacy