SPIP et le protocole https

Bitin - 5/03/2016
Image:SPIP et le protocole https

HTTPS, SSL, TLS & TCP 443
La confidentialité et l’intégrité des données

Nous venons de passer ce site en HTTPS, variante du HTTP sécurisée par l’usage des protocoles SSL ou TLS, afin de bénéficier d’un certificat d’authentification émis par une autorité tierce fiable, en l’occurrence Let’s Encrypt.

Le HTTPS garantit théoriquement la confidentialité et l’intégrité des données envoyées par l’utilisateur et reçues du serveur [1].

Par défaut, les serveurs HTTPS sont connectés au port TCP 443, ce qui peut poser des problèmes avec SPIP selon certaines configurations serveur - nous y revenons ci-dessous.

Comme on peut le lire sur contrib.spip.net, les dernières versions de SPIP sont compatibles avec le protocole HTTPS (https://), et la migration entre HTTP et HTTPS est généralement aisée et ne pose aucun problème :

Pour passer un site SPIP de HTTP à HTTPS :

• Installer le certificat SSL sur le serveur (à voir avec votre hébergeur, documentation générale sur le site de Let’s Encrypt) ;
• Mettre à jour votre .htaccess pour forcer le passage en HTTPS (lire plus bas) ;
• Dans la partie de privée de votre site, dans le menu configuration / adresse du site, mettre à jour l’adresse du site avec l’URL en HTTPS ;
• Vider le cache du site et du navigateur et... c’est tout ! [2]

Mais...

Selon certaines configurations serveur, des problèmes peuvent apparaître, notamment dans l’espace privé. J’ai rencontré l’un d’eux sur certains hébergements mutualisés : dans l’espace privé de SPIP, un :80 apparaissait dans l’url après le passage en HTTPS, envoyant l’erreur suivante lors de l’appel des pages :

Secure Connection Failed
An error occurred during a connection to www.domain.tld:80.
SSL received a record that exceeded the maximum permissible length.
(Error code : ssl_error_rx_record_too_long)

The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.

La solution, fournie par mon hébergeur [3], trouvée sur un forum SPIP, est la suivante :

Ajouter la ligne suivante :
$_SERVER['SERVER_PORT']='443';
dans votre fichier /config/mes_options.php, le créer pour l’occasion s’il n’existe pas déjà dans le dossier /config. Vider le cache du site et du navigateur et... normalement votre site ET votre interface privée ne devraient plus poser de problèmes en HTTPS.

Notez que si vous utilisez un squelette vous pouvez utiliser le fichier mes_options.php du squelette (ou du squelette "pluginisé", le cas échéant). De plus, le dossier /config n’étant pas concerné par les mises à jour de SPIP, vous n’aurez pas à faire cette opération chaque fois que vous voudrez mettre SPIP à jour.

Enfin, il vous est possible de passer automatiquement en HTTPS pour les pages contenant des informations privées (notamment pour l’espace privé) en utilisant le plugin Rediriger-en-HTTPS-quand-l-utilisateur-est-connecte.

Pour les redirections systématiques en HTTPS, ça dépend de votre configuration serveur.
Vous pouvez pour cela utiliser le fichier .htaccess : il suffit de modifier ou d’ajouter les lignes suivantes au fichier .htaccess du site pour que tous ses visiteurs accèdent automatiquement à sa version https sécurisée :

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://domaine.tld/$1 [R=301,L]

En espérant vous avoir été utile...
N’hésitez pas à partager ici d’éventuels autres problèmes liés au HTTPS avec SPIP et leurs solutions.

domain.tld ?

domain.tld désigne l’URL de votre site, soit votre nom de domaine (domain - par exemple ici bitin) et l’extension (tld, ici .fr). [tld désigne le domaine de premier niveau, abrégé TLD pour l’anglais top-level domain]


Let’s Encrypt

Let’s Encrypt est une autorité de certification libre, automatisée et ouverte. C’est un service fourni par le Internet Security Research Group (ISRG).

Let’s Encrypt est gratuit, car sponsorisé par de nombreux hébergeurs (Free, Gandi, OVH, ..., et notre hébergeur, Infomaniak) ou encore par Mozilla, Cisco, Facebook, Chrome...

Illustration : Logo of the networking protocol https and the www letters, Fabio Lanari, GNU, septembre 2012.

Bitin•fr - Création de sites et de contenus

Vous avez des idées ?
Nous avons les solutions : contactez-nous !

 5/03/2016

[1certaines attaques, comme celles du type Man in the middle, peuvent néanmoins être mise en œuvre, ou encore, comme l’aura révélé Edward Snowden, des programmes comme Bullrun, de la NSA, pour décrypter les échanges

[2Attention : si certaines pages de votre site contiennent des contenus externes (images externes par exemple) appelés en HTTP, vous aurez un avertissement dans la barre d’adresse du navigateur internet.

CMS

 Vos commentaires

 documents

mes_options.php
zip
Fichier mes_options.php avec la ligne de code : $_SERVER['SERVER_PORT']='443'; à placer dans le dossier /config de SPIP en cas de problème avec le (...)

Articles référencés 

WordPress 6.5 Release Candidate 4
28/03/2024
Gazette aléatoire n°27
20/03/2024
WordPress 6.5 Release Candidate 3
19/03/2024
CMS