SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 220 visiteurs en ce moment

Accueil > Optimisation et performances > Passer un site SPIP sous https://

Passer un site SPIP sous https://

23 février 2017 – par erational – 11 commentaires

26 votes

Comment migrer simplement votre site SPIP de http:// vers https://

Le protocole https:// devient de plus en plus courant :

  • C’est mieux pour la vie privée de tous
  • La plupart des grands sites l’a déjà adopté
  • Certains navigateurs commencent à afficher les sites en http:// avec un logo « non sécurisé »
  • C’est un avantage pour le référencement

Heureusement, dans la plupart des cas, il est assez simple de passer son site SPIP de http:// vers https://.

Cet article vous explique comment faire

Étape 1 - Obtenir un certificat https:

Sur les hébergeurs mutualités, il faut que l’option soit disponible et, en général il faut l’activer sur le domaine ou le sous-domaine désiré.

Sur les serveurs dédiés, la solution Let’s encrypt permet de créer ses propres certificats.

Installer et configurer un certificat Let’s Encrypt

Étape 2 - Modifier l’adresse générale du site

  • Aller dans le Menu configuration > Identité du site > Adresse (URL) du site public
    Changer l’adresse du site http://www.noisette.org devient https://www.noisette.org
  • Vider le cache par le Menu maintenance > Vider le cache

Étape 3 - Vérifier et adapter son squelette

Si vos squelettes utilisent la balise #CHEMIN comme recommandé, la mise à jour de squelettes est minime car les adresses sont indiquées en relatif.

Pensez à vérifier les points suivants :

  • Les appels aux ressources externes (polices, styles, librairies javascript, ...) doivent toutes être en https://
    http://cdn.monsuper.js.... devient https://cdn.monsuper.js....
  • Naviguer sur votre site pour vérifier que votre navigateur ne détecte pas d’erreurs.

Par exemple, sous Firefox :

Tout va bien, https:// est bien en place
https:// est en place
mais certaines ressources sont encore en http://

La console du navigateur Chrome indique aussi les erreurs de contenus mixtes http / https

Étape 4 - Configurer son .htaccess pour forcer l’adresse en https:

Une fois le https:// en place, il faut forcer la redirection des anciennes adresses vers les adresses sécurisées.

Cela peut se faire en ajoutant dans votre fichier .htaccess les lignes suivantes :

  1. RewriteCond %{HTTPS} !=on
  2. RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Télécharger

Autres ressources sur https:

Tour d’horizon sur HTTPS et les en-têtes de sécurité (Alsacréations)

Dernière modification de cette page le 23 février 2017

Retour en haut de la page

Vos commentaires

  • Le 7 avril à 17:40, par pa.georges En réponse à : Passer un site SPIP sous https://

    Bonjour,
    j’ai des squelettes *.css.html avec des règles css contenant

    1. background: url(...)

    qui utilisent la balise #CHEMIN, et cette balise génère bien effectivement des chemins relatifs, mais ensuite dans le fichier css minifié généré lors de la mise en cache par SPIP, les url(...) sont converties en url absolues qui commencent par http:// au lieu de https://... C’est très gênant que le minifier CSS de SPIP remplace automatiquement toutes les URLs relatives par des URLs absolues, sans raison apparente. Comment désactiver cela et faire en sorte de conserver des urls relatives dans le fichier CSS minifié ?

    (Pour la petite histoire, c’est le filtre |compacte qui appelle le filtre |url_absolue_css qui se charge de réécrire toutes les url(...) relatives en url(...) absolues, et je ne comprends pas en quoi ceci s’appelle un « compactage »... Pour moi c’est plutôt un décompactage, puisque l’url absolue prend plus de place que l’url relative !!!)

    • Le 7 septembre à 19:43, par pa.georges En réponse à : Passer un site SPIP sous https://

      Bon, alors je me réponds à moi-même :
      la fonction url_absolue(), définie dans le fichier ecrire/inc/filtres_mini.php, fait appel en interne à la fonction url_de_base(), définie dans le fichier ecrire/inc/utils.php, et cette dernière ne se base absolument pas sur le contenu de meta[adresse_site], comme on aurait pu s’y attendre (c’est expliqué et justifié dans les commentaires de la fonction). Au lieu de cela, elle teste si la variable $_SERVER[« SCRIPT_URI »] commence par « https » ou si la variable $_SERVER[’HTTPS’] est présente et vaut autre chose que « Off ».

      Or il se trouve que dans mon cas de figure, le serveur Apache de notre hébergeur web ne positionne aucune de ces deux variables, et donc la fonction url_de_base() échoue à bien détecter si l’internaute a demandé du HTTPS ou pas.

      Solutions au problème : demander à l’hébergeur de bien vouloir rajouter l’une de ces deux variables sur la config de son serveur Apache, ou bien sinon, si on ne le peut pas, surcharger la fonction url_absolue() en créant une fonction filtre_url_absolue() dans le fichier squelettes/mes_fonctions.php, qui se contente d’appeler url_absolue() en lui renseignant « https://... » dans le deuxième paramètre de la fonction.

      Ceci dit, apparemment je suis un des rares à avoir eu ce problème, ce qui me laisse penser que la plupart du temps, un serveur web standard publie au moins l’une ou l’autre de ces deux variables $_SERVER[« SCRIPT_URI »] ou $_SERVER[’HTTPS’] , donc peut-être qu’il serait judicieux de patcher la fonction url_absolue() pour que, en l’absence de $_SERVER[« SCRIPT_URI »] et de $_SERVER[’HTTPS’], elle se base sur la présence de « https » ou pas en début de meta[adresse_site], au lieu d’en déduire un peu hâtivement que par défaut c’est du « http »...

    • Le 11 septembre à 09:46, par Z En réponse à : Passer un site SPIP sous https://

      Bonjour pa.georges

      J’ai exactement le même problème que toi, et ton post m’a beaucoup aidé. J’ai fait une petite page de test rapide de ces 2 variables, et effectivement, ni l’une ni l’autre ne sont positionnées.
      https://www.c-nous.loc/apache.php
      Ce n’est peut-être pas si rare de voir cela.... Je vais donc suivre tes conseils et voir s’il est possible d’obtenir le positionnement de l’une des 2 variables, ou à défaut, écrire la surcharge que tu préconises ne devrait pas être trop compliqué.

      ++
      Z

    Répondre à ce message

  • Le 7 juin à 08:27, par Pascal Engelmajer En réponse à : Passer un site SPIP sous https://

    Bonjour,
    Le site marche tout à fait bien en http. Je n’ai pas redirigé le http vers https.
    lorsque j’essaie
    https://www.monsite.com/test.html
    -  avec .htaccess (# Fichier .htaccess SPIP v 3.1)
    j’obtiens une erreur 403 Forbidden (Forbidden /You don’t have permission to access / on this server.)
    sans .htaccess (renommé htaccess.txt)
    j’obtiens bien le contenu du fichier test.html avec la notion sécurisé dans la barre d’adresse)
    je ne sais pas quoi faire...
    Merci de votre aide

    Répondre à ce message

  • Le 12 mars à 23:45, par conil26 En réponse à : Passer un site SPIP sous https://

    A l’étape 4, selon les FAI, la redirection indiquée ne suffit pas :

    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Il vaut mieux l’écrire en dur :

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

    en remplaçant :
    https://www.monsite.com/
    par l’adresse du site concerné.

    Il faut aussi penser à ajouter dans :

    ../config/mes_options.php
             $_SERVER['SERVER_PORT']='443';
             $_ENV["SERVER_PORT"]='443';

    Répondre à ce message

  • Le 10 mars à 08:55, par Manu En réponse à : Passer un site SPIP sous https://

    Je me pose des questions sur le contenu des articles : si le texte de ces derniers contient des liens en http du style[Voir l'article->http://mondomaine.tld], est-ce un souci ? (parce que ce serait complètement inenvisageable de modifier tous ces liens...)

    • Le 10 mars à 08:59, par erational En réponse à : Passer un site SPIP sous https://

      Non ce n’est pas un problème :

      • si c’est un lien externe, c’est autorisé
      • si c’est un lien interne ( même si c’est plus propre d’utiliser un raccourci du type [voir l'article->56] ). Cela fonctionnera car dans le .htaccess on a la redirection vers le https.

    Répondre à ce message

  • Le 28 février à 10:19, par Nicolas Friedli En réponse à : Passer un site SPIP sous https://

    Selon la configuration du serveur — lorsqu’il tente de repasser systématiquement sur le port 80 —, on pourra aussi penser à ajouter un ceci dans mes_options.php :

    $_SERVER[’SERVER_PORT’]=’443’ ;

    Répondre à ce message

  • Le 26 février à 17:31, par thx11 En réponse à : Passer un site SPIP sous https://

    Info très utile.
    Est ce que ces réglages permettent de se passer complétement du plugin redirhttps?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Plugin Modèles media

    25 avril 2011 – 180 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

  • Qrcode

    3 novembre 2010 – 45 commentaires

    Les QrCodes sont des codes barres lisibles essentiellement par les téléphones portables et permettent d’échanger avec ceux-ci diverses informations, et en particulier des liens. Ce plugin à pour objet de permettre à spip d’utiliser des QrCodes pour (...)

  • Speedsyndic pour SPIP 2 et SPIP 3

    11 octobre 2010 – 27 commentaires

    Ce plugin est une version compatible spip 2.0.x / 2.1 / 3.1 du plugin Speedsyndic Note : Une bonne partie du texte ci-dessous a été pompé de cet article, expliquant la version précédente du plugin. je n’ai fait qu’adapter le code pour spip 2, (...)

  • LIM : alléger l’espace privé

    20 avril 2015 – 41 commentaires

    Ce plugin permet de désactiver l’affichage de blocs ou de boutons, présents par défaut dans SPIP mais qui peuvent devenir inutiles dans le cadre de votre projet. Il allège du coup l’interface d’édition et supprime d’éventuels risques de confusion (...)

  • HTML Purifier

    5 janvier 2011 – commentaires

    Pour sécuriser l’affichage de certains textes (ceux qui proviennent potentiellement non pas des rédacteurs, mais de visiteurs non enregistrés ou de contributeurs externes, comme les forums ou les contenus des sites syndiqués), SPIP utilise en interne (...)

Ça spipe par là