SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 96 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 – 33 commentaires

31 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)

P.-S.

Si jamais votre serveur est mal configuré et qu’il ne renseigne pas la variable $_SERVER['HTTPS'], vous pourriez rencontrer des erreurs de contenus mixtes. Pour contourner ce problème, ajouter les lignes suivantes dans le fichier config/mes_options.php :

  1. $_SERVER['HTTPS'] = 'on';
  2. $_SERVER['SERVER_PORT'] = '443';

Télécharger

Dernière modification de cette page le 17 avril 2018

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 8 mars à 15:47, par touti En réponse à : Passer un site SPIP sous https://

    Chez OVH il est indiqué

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R,L]

    https://docs.ovh.com/fr/hosting/htaccess-reecriture-url-mod-rewrite/

    • Le 8 mars à 15:54, par touti En réponse à : Passer un site SPIP sous https://

      Chez cet hébergeur si on active le CDN via SPIP (d’un clic c’est top !) il faut aussi que le sous domaine cdn.exemple.tld ait un certificat SSL

    Répondre à ce message

  • Le 9 décembre 2017 à 13:56, par Manuel En réponse à : Passer un site SPIP sous https://

    Bug espace privé suite au passage à HTTPS

    Depuis le passage de notre site en HTTPS, avec redirection HTTP->HTTPS + HSTS au niveau serveur, l’espace privé est inutilisable à moins de désactiver Javascript.

    Je remarque dans le code source que de nombreuses adresses sont restées en HTTP, notamment celle issue de la ligne 11 de /prive/squelettes/inclure/head.html :

    function test_accepte_ajax(){jQuery.ajax({"url":"[(#URL_ECRIRE{test_ajax,js=1}|replace{'&','\x26'})]"});}

    qui devient dans le code source

    function test_accepte_ajax(){jQuery.ajax({"url":"http://monsite.com/ecrire/?exec=test_ajax\x26js=1"});}

    au lieu de

    function test_accepte_ajax(){jQuery.ajax({"url":"https://monsite.com/ecrire/?exec=test_ajax\x26js=1"});}

    De même que tous les appels de CSS qui commencent par HTTP au lieu de HTTPS.

    Du coup, tout ce qui a recours à AJAX ne fonctionne pas.

    On dirait que #URL_ECRIRE continue à utiliser l’URL http et non pas https.

    L’espace privé est utilisable sans le javascript, mais cela pose quelques problèmes quand il faut valider plusieurs posts de forums en même temps.

    Sinon aucun problème dans l’espace public, mais je n’utilise pas la balise #INSERT_HEAD

    Quelques infos :

    Version SPIP : 3.2
    Version PHP 5.4.45
    MySQL 10.0.32-MariaDB-0

    Bonne réception, cordialement.

    Manuel

    • Le 9 décembre 2017 à 15:55, par erational En réponse à : Passer un site SPIP sous https://

      As tu changé l’adresse du site dans le menu configuration avec le https// et vidé ton cache ?

    • Le 9 décembre 2017 à 16:34, par Manuel En réponse à : Passer un site SPIP sous https://

      Oui, l’adresse du site dans configuration comment par https:// et le cache a été vidé.

    • Le 13 février à 20:14, par pa.georges En réponse à : Passer un site SPIP sous https://

      Bonjour, essayez la solution donnée par toto21, à savoir de mettre les deux lignes suivantes dans le fichier /config/mes_options.php :

      $_SERVER['HTTPS'] = "on";
      $_SERVER['SERVER_PORT']='443';

      Chez moi ça a réglé le problème.

    • Le 13 février à 21:21, par Manuel En réponse à : Passer un site SPIP sous https://

      En ajoutant ces deux lignes, cela fonctionne. Merci beaucoup.

    Répondre à ce message

  • Le 12 mars 2017 à 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';
    • Le 13 février à 20:10, par pa.georges En réponse à : Passer un site SPIP sous https://

      Sur certains serveurs (c’est mon cas), la variable Apache %HTTPS renvoie toujours off, même en mode HTTPS, et la variable %HTTP:X-Forwarded-Proto renvoie toujours une chaîne vide. Il ne sert alors absolument à rien de mettre ces RewriteCond / RewriteRule dans le .htaccess...

      En revanche, le fait de mettre les deux lignes suivantes dans le fichier /config/mes_options.php suffit, en soi, à régler tous les problèmes :

      $_SERVER['HTTPS'] = "on";
      $_SERVER['SERVER_PORT']='443';

      Merci à toto21 pour cette suggestion.

    Répondre à ce message

  • Le 7 février à 16:25, par spbzh En réponse à : Passer un site SPIP sous https://

    Voici la pièce jointe

    Répondre à ce message

  • Le 7 février à 16:23, par spbzh En réponse à : Passer un site SPIP sous https://

    Voici la pièce jointe.

    Répondre à ce message

  • Le 7 février à 16:06, par spbzh En réponse à : Passer un site SPIP sous https://

    Bonjour,

    Suite au passage d’un SPIP 3.0.26 en https, lorsque je souhaite ajouter une image à un article, j’ai le message Forbidden (cf capture).
    Le site marche très bien en http.
    Les versions du serveur sont :
    -  Apache/2.2.22
    -  PHP 5.6.30
    -  Mysql 5.5.59

    J’ai suivi les recommandations de toto21 et conil26, mais sans succès.
    Il s’agit d’un site avec le plugin EVA-WEB 4.2
    Nous avons déjà réalisé le même passage vers https avec un autre site SPIP 3.0.26 mais avec le plugin Sarka-SPIP 3.2.36 sur un autre serveur.
    Les 2 serveurs ont la même configuration et nous ne rencontrons pas ce problème.

    Les droits sur les dossiers et fichiers sont les mêmes sur les 2 sites.

    Merci de votre aide.

    Répondre à ce message

  • Le 7 janvier à 12:39, par PRX En réponse à : Passer un site SPIP sous https://

    bonjour,
    très utile ce mode d’emploi ! merci.
    Cela marche très bien, SAUF pour les flux RSS (je ne sais pas d’ailleurs si ce flux « supporte » le https) .

    Par ex dans le plugin et squelette Zcore, vous avez en pied de page (footer) un flux RSS appelé par la page /spip.php ?page=backend qui marche très bien en http.
    Si on applique la méthode ci-dessus, on a en HTTPS un message d’erreur de Firefox (on est dans toutes les versions les plus récentes de tout) : « Aucune information de style ne semble associée à ce fichier XML. L’arbre du document est affiché ci-dessous. » avec un XML affiché qui commence par « 

    • Le 7 janvier à 12:42, par PRX En réponse à : Passer un site SPIP sous https://

      cela a été coupé : voici la suite :

      1. <rss version="2.0"><channel xml:lang="fr"><title>

      N’y aurait-il pas une exception pour cette page à ajouter dans la redirection du .htaccess ? Quel en serait son expression SVP ?
      Merci d’avance

    • Le 7 janvier à 14:19, par Maïeul En réponse à : Passer un site SPIP sous https://

      Bah c’est juste que Firefox ne sait pas lire le flux rss et du coup affiche la source brut, mais un lecteur de flux lui le lira sans souci.

    • Le 7 janvier à 19:50, par PRX En réponse à : Passer un site SPIP sous https://

      Bonsoir Maïeul,
      pas tout à fait car en http, Firefox le lit bien ce flux et quand tu syndiques ce site depuis un autre site (spip aussi) et bien cela refuse de syndiquer ... le flux a donc bien un problème mais où . avez -vous fait un test ? c’est facile..

    • Le 7 janvier à 20:23, par Maïeul En réponse à : Passer un site SPIP sous https://

      Cela doit être un problème spécifique à ton site, parce que chez moi sur mon site (et sur d’autres) cela fonctionne sans problème.

    • Le 8 janvier à 12:21, par PRX En réponse à : Passer un site SPIP sous https://

      Bonjour,
      effectivement il n’y a que mon site qui a ce soucis, mais j’ai d’autres indices qui vont peut-être faire avancer la recherche de solution pour le backend en https:
      (- sans redirection https, en http, le rss marche.)
      -  quand j’ai le message d’erreur de Firefox ci-dessus, j’ai son « verrou vert »,
      -  immédiatement après une purge de cache, tout va bien : le flux s’affiche et alors, comme pour https://contrib.spip.net/spip.php?page=backend , je n’ai pas de verrou vert mais un « i » entouré à la place, par contre si j’actualise la page, cela revient bien avec le verrou vert et l’erreur ci-dessus et cela reste toujours en erreur si je réactualise encore la page,
      -  si je demande avec /spip.php ?page=backend& var_mode=debug, j’ai une fois sur 3 environ en actualisant la page un bon affichage.
      Qu’en pensez-vous ?

    • Le 8 janvier à 12:29, par Maïeul En réponse à : Passer un site SPIP sous https://

      Le mieux serait de moins d’envoyer le lien.

    • Le 8 janvier à 12:42, par PRX En réponse à : Passer un site SPIP sous https://

      merci , c’est https://www.yanfouom.net/spip.php?page=backend

      au passage j’ai eu une autre réponse avec https://www.yanfouom.net/spip.php?page=backend & var_mode=debug : une indication que dans squelettes-dist/formulaires/administration.html serait le soucis, je ne sais d’où il vient celui-là par contre

    • Le 9 janvier à 09:23, par Maïeul En réponse à : Passer un site SPIP sous https://

      Chez moi ce flux rss fonctionne parfaitement est est bien interprété par mon lecteur.

    • Le 9 janvier à 10:18, par PRX En réponse à : Passer un site SPIP sous https://

      Merci Maïeul

      ce doit être FF (Quantum 57.0.03) alors, car il marche 1 fois après que tu n’y sois pas allé depuis longtemps et pas après « actualiser »...

      J’ai testé avec Thunderbird, cela marche bien.

      mais depuis un autre site Spip, si je l’abonne j’ai l’erreur :

      Ce site est syndiqué…
      Attention : la syndication de ce site a rencontré un problème ; le système est donc temporairement interrompu. Vérifiez l’adresse du fichier de syndication de ce site (https://www.yanfouom.net/spip.php?page=backend), et tentez une nouvelle récupération des informations

      cela fait 2 outils sur 3 qui ne l’acceptent pas, beaucoup tout de même. Je dois avoir quand même une erreur.

    Répondre à ce message

  • Le 7 avril 2017 à 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 2017 à 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 2017 à 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

    • Le 11 décembre 2017 à 18:16, par toto21 En réponse à : Passer un site SPIP sous https://

      Bonjour,
      [Version de SPIP : 3.0.X]
      En effet certains serveurs ne fournissent entre une connexion http / https qu’une seule variable serveur pour indiquer le protocole https :

      1. $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https'

      Configuration faible du serveur ? Celui sur lequel je dois travailler maintient même la valeur $_SERVER[’SERVER_PORT’] sur 80 même lors de l’appel d’une page en https!

      Du coup pour résoudre le problème j’ai du artificiellement positionner la variable $_SERVER[’SCRIPT_URI’] à la valeur ’https://’ (il semble que $_SERVER[’HTTPS’] sur on, soit équivalent et plus élégant ;) - j’ai par sécurité mis les deux) - cependant cela ne suffit pas, les appels ajax ne s’y retrouvent pas (par exemple sur la page pour vider le cache), sans placer $_SERVER[’SERVER_PORT’] sur le port https 443.
      Donc voici ce que j’ai du ajouter dans le fichier ../config/mes_options.php :

      1. $_SERVER['SCRIPT_URI'] = 'https://';
      2. $_SERVER['HTTPS'] = "on";
      3. $_SERVER['SERVER_PORT']='443';

      Télécharger

      Dans ce contexte voir la solution de conil26 ci-dessous pour forcer la redirection https.
      Encore merci à pa.georges pour m’avoir mis sur la bonne piste.

    Répondre à ce message

  • Le 7 juin 2017 à 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 10 mars 2017 à 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 2017 à 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

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

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

  • Albums 3

    8 août 2014 – 276 commentaires

    Le plugin « Albums » évolue dans une version 3 pour SPIP 3. Avant d’effectuer une mise à jour depuis la version 1 ou 2, consultez les notes sur la rétro-compatibilité. Les modèles, notamment, on reçut quelques changements pour la bonne cause. En (...)

  • spiPDF : générer des contenus sur mesure en PDF

    16 février 2011 – 235 commentaires

    Le plugin spiPDF génère des fichiers au format PDF d’article ou de tout autre élément SPIP, simplement à partir d’un squelette construit au format HTML 4 et facile à modifier. Avertissement de sécurité Ce plugin a fait l’objet d’une faille de sécurité (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2435 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Configurer Mailjet

    25 avril 2016 – 13 commentaires

    N’hésitez pas à relire le préambule de cette rubrique avant de créer un compte sur une plateforme tierce . Après avoir créé votre compte Étape 1 : Ajouter votre domaine Aller sur la page : https://app.mailjet.com/account/domain Suivre les (...)

  • ScolaSPIP 4

    19 janvier 2016 – 324 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)