Comment forcer le passage de votre site web en https ?

Afin de garantir une sécurité maximale de votre site web, il est recommandé de le passer en HTTPS. Pour se faire vous devrez d'abord installer un certificat SSL pour chaque domaine disponible de votre site web. Une fois l'opération réalisée, voici ce qu'il vous reste à faire en terme de configuration pour rediriger 100% de votre trafic de manière sécurisée sur votre site web.

Attention : La procédure ci-dessous convient lorsque le site ET le portail sont en HTTPS. Pour forcer le SSL sur le site, et laisser le portail en HTTP, veuillez vous référez au bas de l'article.

Site et portail en HTTPS

Pour rediriger automatiquement le trafic http en https, il vous faut ajouter la ligne suivante dans le web.config :

<add name="ForceSSLModule" type="IceCube.Web.ForceSSLModule, IceCube_Business" />

Dans la partie de configuration se trouvant ci-dessous :

<system.webServer>
        <modules>

Ne pas oublier de configurer l'accès au LayoutInstance en HTTPS.

Site en HTTPS, portail en HTTP

Tout d'abord, créer un fichier nommé CustomForceSSLModule.cs dans le dossier App_Code avec le contenu suivant :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace IceCube.Custom
{
	public class ForceSSLModule : IHttpModule
	{
		public void Dispose()
		{
		}

		public void Init(HttpApplication context)
		{
			context.BeginRequest += new EventHandler(context_BeginRequest);
		}

		void context_BeginRequest(object sender, EventArgs e)
		{
			var url = HttpContext.Current.Request.RawUrl.ToLower();

            if (url.IndexOf(".asmx") >- 1)
            {
                return;
            }
        
			var rq = HttpContext.Current.Request;
			if (!rq.IsSecureConnection)
			{
				HttpContext.Current.Response.Redirect("https" + rq.Url.ToString().Remove(0, 4), true);
			}
		}
	}
}

Ensuite, modifier le fichier web.config à la racine de votre site web :

<add name="ForceSSLModule" type="IceCube.Custom.ForceSSLModule" />

Dans la section suivante : 

<system.webServer>
        <modules>

Ne pas oublier de configurer l'accès au LayoutInstance