Serveurs Privés Virtuels (VPS) – Impossible d'activer https sur nouveau site
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Impossible d'activer https sur nouveau site

Par
ThierryS5
Créé le 2021-04-06 16:40:07 (edited on 2024-09-04 11:34:04) dans Serveurs Privés Virtuels (VPS)

bonjour,

dans l’attente d’une possible restauration de mon VPS OVH impacté par l'incendie, j’ai du refaire une installation de mon site internet sur un autre vps (wordpress). je bénéficie d’un certificat SSL généré pour mon ancien vps sur le SSL Gateway.
j’ai donc modifié l’IP du serveur indiqué sur le domaine de mon site www.imagineservices.fr pour rediriger vers le nouveau vps. la redirection fonctionne puisque quand je vais sur imagineservices.fr, je suis bien redirigé vers le site internet.

Mon souci est que mon site n’est pas accessible en https ; j’ai installé le plug-in « Really simple SSL » qui m’informe que SSL n’est pas encore active sur ce site ??
si je modifie l’url général actuellement en http://ip du serveur en https://imagineservices.fr ainsi que l’adresse web du site pour le mettre en https://imagineservices.fr au lieu de son ip actuelle, je perds la main sur le site..

Que pouvez vous me conseiller svp ?
merci par avance pour vos conseils.


9 réponses ( Latest reply on 2021-04-07 19:42:15 Par
ThierryS5
)

Une remarque rapidement, si vous aviez une "gateway ssl" c'est au niveau du panel ovh dans le panel qu'il faut pointer sur le nouveau VPS, pas au niveau DNS non ?
En théorie votre config DNS ne change pas, vous pointez tjrs sur votre "gateway SSL" mais par contre la GW elle doit pointer sur le nouveau VPS...

merci Sich pour vos conseils,

j'ai bien modifié depuis le panel gateway ssl, dans l'onglet serveur, la nouvelle adresse IP ; en complément, j'ai testé ce que donne la requête https://imagineservices.fr , voila le résultat en PJ

je pense que mon problème vient donc des paramètres wordpress...

ha mais votre VPS redirige sur l'ip... ça doit être dans la config du WP ça oui...
j'aurai bien fait un wp search-replace là dessus... mais ça doit pouvoir se faire via le back office (reconfigurer l'url du site sur le nom et non pas sur l'ip).

effectivement, à l'installation en urgence du nouveau vps, je n'ai pas modifier l'adresse du site qui pointait sur le vps HS ; je pense qu'il faut modifier les infos ici :


mais lorsque je remplace les infos IP par https://imagineservices.fr, je perds le lien d'administration vers le site ; le site est accessible mais plus le portail de login...

petite question, comment se connecte la gateway ssl au backend ? Sur le port 80 ou 443 ? Si c'est le 80 ça peut expliquer le soucis...

Il faudrait essayer d'ajouter ça dans le wp-config.php (pas dit que ça aide)

if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}

Merci @Sich pour l'aide ; malheureusement, ça ne marche pas.
je deviens dingue à ne pas m'en sortir...
voici mes dernières manipulations :
connexion directe sur la BDD pour :
1. forcer siteurl & home en https://imagineservices.fr
2. modifier l'url de connexion user sur la même url https://imagineservices.fr au lieu de http://51.178.87.168/

est ce que le fait d'avoir un certificat ssl qui pointait vers un autre vps pose souci même si j'ai bien modifié l'IP serveur vers le nouveau ?

Quelqu'un peut il m'aiguiller dans l'investigation svp ?
merci par avance

NB : en remettant les valeurs initiales de WP sur siteurl et home en http://51.178.87.168 , j'arrive à récupérer l'accès au site...

il faudrait voir votre config en détail là...
config de la ssl gateway, des dns, du vhost apache, de wordpress...

@Sich, voici les informations dont je dispose :
le domaine imagineservices.fr est renvoyé vers l'IP Gateway de la passerelle SSL OVH


les infos de la passerelle SSL :



Quid du vhost apache -> la, je suis paumé ...comment puis je vous remonter les infos ?
réglages Wordpress :


les infos phpMyAdmin de la table_options :


le fichier .htaccess :

RewriteEngine On
## http -> https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



----------
n'hésitez pas à compléter si besoin de plus d'informations ; le plus étrange est que lorsque je remets l'IP du serveur sans https sur siturl et home, j'arrive à retrouver l'accès au site et à l'admin..

NB : je viens de découvrir un truc étrange ; lorsque je rentre l'IP de mon ancien VPS (164.132.100.200) , je suis redirigé vers l'IP de mon nouveau (51.178.87.168) ?


RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]


alors la rewrite rule pour https ne va pas fonctionner, car la gateway se connecte en http sur le serveur.

Ou tenter de la changer par ça :
[quote]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
[/quote]

Ensuite bien remettre ce que je vous avais dis dans le wp-config
[quote]
if (!empty($SERVER['HTTPX_FORWARDED_PROTO']) && $SERVER['HTTPX_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
[/quote]

Et bien entendu remettre le nom du site sur la config WP, ou passer par ssh avec wp-cli pour faire un search-replace sur l'ip par le ndd.
Et "normalement", ça devrait être ok...

Et sinon tenter de faire en sorte que la GW se connecte en HTTPS sur le serveur...
Et concernant le vhost apache ça se passe dans /etc/apache2/sites-enabled/ (mais ça dépend de votre distrib ça).

merci @Sich par avance pour le temps pris dans ce support ; je vais appliquer la procédure et croise les doigts ..

@Sich, j'ai appliqué à la lettre vos recommandations et nous avons passé une étape !
désormais, le site est accessible depuis son url et non plus depuis son IP ; j'ai fait un search & replace depuis phpMyAdmin et désormais j'arrive bien sur le site grâce à son url.

le souci reste sur la partie SSL, j'ai tenté de modifier dans Réglages général de Wordpress, l'url pour rajouter le "s" au http : //imagineservices.fr.

en tentant de joindre imagineservices.fr, j'obtiens :


et j'ai toujours le plugin really simple ssl qui m'indique

lorsque je clique sur recharger par https ; c'est tout cassé !


je me demande s'il ne faudrait pas que je commande un nouveau certificat SSL sur la plateforme SSL Gateway...

faut virer ce plugin (le machin ssl), en fait côté apache vous ne serez pas en SSL, ce qui va perturber le fonctionnement du plugin.
Commencez par virer ce plugin, ensuite supprimez la rewrite rule http > https pour faire des tests.
Et comme WP a besoin de "croire" qu'il est en HTTPS il faut ajouter ce que je vous ai dis dans le wp-config, qui en fait va activer le ssl = on sur WP si le forwarded-proto est bien HTTPS (en gros que le visiteur web est bien en https sur la gateway ssl).

Il faudrait créer un fichier phpinfo.php dans le dossier du wordpress, et y mettre
Et ensuite l'afficher dans le navigateur pour voir si la ligne : HTTP_X_FORWARDED_PROTO est bien présente. (elle doit y être plusieurs fois).

@Sich désinstall ok du plugin !
j'ai "suspendu" la règle rewrite rule http > https en mettant un # devant la ligne
par contre, impossible de copier le fichier phpinfo dans dossier wordpress certainement dû à un problème de droit d'écriture ; j'ai pu le copier dans le dossier tmp mais pas dans le dossier www/wordpress ; pourtant je suis connecté en admin ; qu'en pensez vous ?
je vois que le propriétaire du dossier wordpress est apache mais le fichier phpinfo est la propriété du compte admin..

@Sich, re, j'ai réussi à implémenter en root le fichier, voila le résultat :

la ligne est bien présente

ok, donc normalement si vous êtes en https sur le site vous devriez voir forwarded_proto à https... D'où la rewrite rule que j'avais donné à un moment donné

[quote]RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/quote]

je pense que ça devrait fonctionner ça (j'ai pas de config adéquate sous la main pour tester).

Sinon ça doit faire le taf ça aussi :
[quote]RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent][/quote]

cf : https://aws.amazon.com/fr/premiumsupport/knowledge-center/redirect-http-https-elb/

Mais je vois qu'il y a un redirect de https vers http... Surement au niveau du wordpress ça non ? Vu que https://imagineservices.fr/phpinfo.php fonctionne bien...

Par conséquent il faut déjà s'assurer que WP ne redirect pas sur http avant de vouloir mettre la rewrite rule... Et pour ça ce passage est important :
[quote]if (!empty($_SERVER['HTTPX_FORWARDED_PROTO']) && $_SERVER['HTTPX_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}[/quote]

Hum attention, c'est $ _ SERVER['HTTPX_FORWARDED_PROTO'] et non pas $SERVER... le forum me vire le _
Voir ici : https://wordpress.org/support/topic/wp-behind-reverse-proxy-all-content-insecure/


Là on dit au niveau PHP que si le "forwarded proto" est HTTPS on définit la variable $_SERVER['HTTPS'] à ON, pour faire comprendre à Wordpress qu'on est bien en HTTPS.

je ne vois pas de redirect https vers http sauf par le fait que pour l'instant, j'avais laissé l'accès au site par http://imagineservices.fr ce qui a donné le résultat phpinfo précédent.
En modifiant l'url général en https://imagineservices.fr, j'ai le message :

par contre, en lançant https://imagineservices/phpinfo.php, j'ai bien l'affichage de la page

et là, HTTP_X_FORWARDED_PROTO ressort en https...

hum, vous avez bien la bonne config dans le .htaccess et dans le wp-config ?
Si vous commentez la redirection dans le .htaccess la boucle de redirection est tjrs présente ?

YEPA !!! Merci @Sich
j'ai appliqué tes directives sur .htaccess et config.php en corrigeant le "_ " manquant. J'ai désormais accès en https://imagineservices.fr
j'ai perdu de la mise en page (images absentes...) ; je vais refaire une passe complète mais c'est déjà beaucoup mieux..
Pour finir de t'embêter serait il possible de checker si mon fichier .htaccess complet te parait conforme :
----------

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .*https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



----------

Un IMMENSE merci pour m'avoir permis de retrouver un fonctionnement correct même si j'avoue ne pas avoir trop compris toutes les règles de rewrite rule....
merci et bonne soirée !

Pour les images c'est qu'il y a des appels sur l'IP et en http :
img class="wp-block-getwid-section__background-image" src="http://51.178.87.168/wp-content/uploads/2020/05/ron-whitaker-mVuKCYMGZBM-unsplash.jpg" alt=""/>

Perso j'installerai wp-cli : https://1cli.org/fr/cli.org/fr/
Puis je lancerai ces 2 commandes en me plaçant dans le dossier du site :
wp search-replace "51.178.87.168" "imagineservices.fr" --all-tables --verbose

wp search-replace "http://imagineservices.fr" "https://imagineservices.fr" --all-tables --verbose

La première remplace dans la bdd l'IP par le ndd, la 2° remplace les appels en http par des appels en https.

Pour le .htaccess ça à l'air de coller en regardant rapidement, suis pas le + doué pour ça :)

j'ai rapidement mis à jour les urls en allant les chercher dans la mediatheque, c'est donc corrigé !
Très sincèrement merci pour ton soutien qui me permet de remettre en service mon site suite aux plusieurs semaines de coupure suite à l'incendie...ouf....
bonne soirée