SSL mi amor...

Au-delà des sites qu’il faut absolument protéger dès lors qu’il y a des transactions, bientôt les sites non SSL seront tous pointés du doigt.

Pour passer un site en SSL il y a plusieurs options plus ou moins complexes. Si le site est protégé par un firewall il faudra généralement exporter le certificat vers celui-ci ou simplement l’installer sur le firewall si l’on considère que le trafic entre le firewall / reverse proxy et le serveur n’a pas à être protégé.

On trouve des certificats plus ou moins couteux selon les garanties offertes, mais pour protéger un simple site un certificat à une dizaine d’euros sera suffisant car il s’agit de sécuriser la transaction et non de valider l’origine du site. (GoGetSSL par exemple ou même Gandi)

Let's Encrypt est une solution gratuite avec ses limitations et contraintes. Les certificats sont ici valables que 3 mois et les maintenir à jour est fastidieux. En gros c'est parfait s'il s'agit d'un Synology, par exemple, ou la gestion du renouvèlement est intégrée (elle impose tout de même l'ouverture du port 80), mais moins pratique sur certains serveurs ou équipements s’il faut faire les mises à jours manuellement. Sur IIS (et ailleurs) des solutions permettent cette automatisation, comme Certify the web ou Lets’Encrypt Win Simple.

Attention, si les versions récentes de IIS supportent plusieurs sites en SSL via SNI, il n’en est pas de même pour des versions plus anciennes.

Enfin, pour les fainéants comme moi il y a SSL Gateway d’OVH. C'est basé sur du Let’s Encrypt et gratuit. En gros OVH fait le boulot et ça permet de passer en SSL n'importe quel site ou équipement. Il n’y a rien à faire sur le serveur à protéger. On redirige l’enregistrement DNS du serveur vers le serveur d'OVH et ensuite sur le serveur protégé on n'accepte que les requêtes en provenance de la passerelle d'OVH. Attention les statistiques peuvent êtres faussées, mais c’est prévu et il y a bien une astuce pour ça. Vous trouvez un pas à pas ici.

La solution d’OVH à ses limites et dans certains cas cette passerelle ne fera pas l’affaire. Le certificat est sur la passerelle et le trafic entre la passerelle et le serveur passe en clair. Ça peut être satisfaisant d’un point de vue sécurité car on aura pris soin de n’accepter que les requêtes de la passerelle OVH, mais le serveur à protéger sera en HTTP et non HTTPS. Dans certains cas l’url vue par le serveur est importante, notamment en .net ou le serveur va retourner http://serveur et non https://serveur et créer des dysfonctionnements avec du code imbriqué qui s’appuie sur cette url, sur ce site par exemple avec Disqus. Alors bien sûr on pourrait aller tripatouiller le code mais ce ne serait qu’une rustine. Pour bien faire il faudrait qu’OVH fournisse un certificat que l’on installerait sur le serveur et ainsi on serait en SSL de bout en bout.

Alors en cherchant un peu on trouve la solution Cloudflare qui va faire la même chose en mieux et pour pas un sous tant qu’il s’agit d’un trafic raisonnable. Cloudflare fourni un certificat que l’on pourra aisément installer sur le serveur à protéger et le cas échéant sur le firewall intermédiaire. Les explications sont ici. Même si on peut le contourner, la solution la plus simple consiste à rediriger ses DNS vers ceux de Cloudflare.