Accueil > WordPress > Comment passer WordPress en https chez Gandi

Comment passer WordPress en https chez Gandi

mardi 2 mai 2017, par Philippe Donnart

Comment passer en https votre site WordPress chez Gandi.net en 2 grandes étapes : installer le certificat SSL et paramétrer WP.

Vous avez créé votre site WordPress sur un Simple Hosting chez Gandi et vous souhaitez passer ce site de http en https, voici comment y arriver.

La procédure est différente si vous êtes passé sous la version V5 de Gandi.
C’est devenu beaucoup plus simple, suffit de cliquer sur Certificats SSL dans l’administration et suivre les étapes... enfin si vous n’avez pas besoin de télécharger le certificat, parce que là c’est une autre histoire

En V4... en V5 allez directement à l’étape suivante
La compatibilité SSL n’est disponible qu’à partir du Pack M (en date du 07/06/2017)

Première étape : installer le certificat SSL sur votre nom de domaine.

Dans l’interface vous allez sur l’onglet SSL, puis vous cliquez sur l’onglet Acheter un certificat SSL.
Je pars sur l’offre SSL Standard (2048 bits en Validation automatique)
Sur la page https://www.gandi.net/ssl/create/csr cliquez sur Utilisez notre générateur.

Une fois généré je vous conseille de coller le code dans un document texte que vous placerez dans un répertoire avec les autres fichiers.
En bas de la page il est écrit "Copier-coller cette ligne de commande dans votre terminal. Votre clé publique (CSR) et privée (KEY) sont à récupérer dans le répertoire où vous avez lancé la commande"

Retournez sur la page de votre instance et cliquez sur Activer en face de Console SSH.
Activation de la console PaaS
Voulez-vous activer la console SSH de l’instance xxx ? Elle sera automatiquement désactivée au bout de deux heures. Validez

Si vous cliquez et que vous obtenez une page blanche ajoutez Firessh par exemple sous Firefox.
Une fois connecter coller ce code " cd /srv/data/tmp " puis le code généré avec le générateur.
Vous devez obtenir quelque chose comme ceci
Generating a 2048 bit RSA private key
.............................+++
................................................................................................................+++
writing new private key to ’ndd.tld.key’

Ensuite par ftp récupérez les 2 fichiers créés (ndd.tld.csr ndd.tld.key) dans /lamp0/tmp
Collez le code obtenu (vous pouvez ouvrir le fichier avec Notepad ++) dans le champ CSR*, le nom de domaine est automatiquement détecté.
Sélectionnez Apache/ModeSSL dans Logiciel utilisé.
Validez la commande

"Certificat SSL
Une fois votre commande validée, en fonction du type de certificat que vous venez d’acheter, vous allez devoir passer un processus de validation.
Vous recevrez un mail vous indiquant les étapes à suivre pour activer votre certificat."

Le processus de validation
Rendez vous sur la page commande, rafraîchissez et cliquez sur le petit crayon.
Il y a 3 étapes, mais si vous avez également acheté le nom de domaine chez Gandi la validation sera automatique et prendra en gros 30 minutes.

 Étape 1 : Validation du contact

 Étape 2 : Validation des droits sur les domaines
Pour rappel, selon la méthode de validation que vous avez choisi, il vous est demandé :
*pour une validation par email*
de créer l’adresse email de contact admin@donnart.eu (ainsi que pour chaque autre domaine dans le cas d’un certificat multi-domaines) afin de recevoir le message de vérification (lien inclus à cliquer). Attention : si vous avez tardé à créer cette adresse, vous avez peut-être déjà raté celui-ci : vous pouvez alors via l’interface, relancer l’envoi.

*pour une validation par DNS*
de modifier la zone DNS de donnart.eu en ajoutant l’enregistrement CNAME qui est communiqué sur l’interface. En cas de certificat Multi-domaines, cette opération est à réaliser pour chaque nom de domaine.

*pour une validation par fichier*
de récupérer le fichier .TXT sur l’interface (lien ’récupérer’) et de copier celui-ci à la racine du répertoire contenant le site web sur lequel pointe le nom de domaine à certifier. En cas de certificat Multi-domaines, cette opération est à réaliser pour chaque nom de domaine.

Si vous n’avez pas eu à choisir entre ces 3 méthodes, c’est que votre nom de domaine est chez Gandi et que vous avez les droits sur celui-ci. La méthode de validation par DNS a donc été automatiquement choisie et configurée. Cette étape se validera donc prochainement.

 Étape 3 : Validation finale et attribution du certificat

Une fois cette troisième étape validée (à l’usage j’ai remarqué que rafraîchir la page ne donnait rien, cliquez sur commande, s’il n’y a plus de commande en cours c’est que le certifcat est actif) retournez dans l’onglet SSL, cliquez sur le nom de domaine et téléchargez le certificat que vous ouvrez avec Notepad++ par exemple.
Retournez sur votre instance et cliquez sur l’icône activez un certificat en face du nom de domaine.
Coller les codes du .crt et du .key et validez.

Deuxième étape : passer en https sur WordPress.

Dans le .htaccess collez

RewriteEngine on
RewriteCond %{REQUEST_SCHEME} =http
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Ensuite vous pouvez :
 soit utiliser l’extension Really Simple SSL
 soit vous suivez cette procédure (que je conseille)

N’utilisez pas les redirections de l’administration de Gandi.

Dans l’onglet Réglages de l’administration ajoutez le s au http:
 Adresse web de WordPress (URL)
 Adresse web du site (URL)

Dans le wp-config.php ajoutez :
define(’FORCE_SSL_ADMIN’, true) ;

SI vous n’avez pas le cadenas vert Sécurisé, penchez vous sur les chemins des images (il vous faudra peut être les modifier, par exemple si vous avez écrit un lien en dur dans un widget).
Les liens internes dans les articles ont sans doute gardé les anciennes url, jetez un oeil sur Déplacer WordPress vers un nouveau Nom de Domaine pour les modifier (remplacer wp_posts par xxx_posts si vous avez créé des tables avec un autre préfixe que celui proposé par défaut)
Cela donne :

UPDATE prefixedestables_posts SET guid = replace(guid, 'http://www.nomdedomaine.com','https://www.nomdomaine.com');

UPDATE prefixedestables_posts SET post_content = replace(post_content, 'http://www.nomdedomaine.com', 'https://www.nomdedomaine.com');

Encore des éléments récalcitrants : Firefox Dev -> Outils de développement -> réseau -> recharger la page -> corriger

Il reste peut être encore quelques http qui traînent, faites une recherche dans la base de données et corrigez les derniers éléments.

Si vous utilisez Google Analytics il vous faudra modifier dans "Paramètres de la propriété l’url par défaut".

Pour vérifier le résultat sur ssllabs.com

PS :
 Gandi et Let’s Encrypt
 si les images disparaissent, jetez un oeil sur WP et Hotlinking