Topic: download.tuxfamily.org en HTTPS: base de données?

Bonjour,

Suite au passage de download.tuxfamily.org en HTTPS (certificat GobalSign), il faut sans doute mettre les liens vers les images en HTTPS dans les bases de données de nos sites?

Ce que j'ai vu et fait en attendant:
Dans Wordpress > paramètres > Général et Média, si je mets https://…, Firefox voit une connexion pas entièrement sécurisé et il bloque une image par ci par-là (ça dépend des thèmes en fait).

Dans Drupal, je n'ai pas retrouvé les paramètres équivalents ;oups: donc je n'ai encore rien fait.

Dans les paramètres de NoScript, onglet HTTPS, si je mets download.tuxfamily.org  dans la liste «Forcer HTTPS», j'ai une connexion bien reconnue par Firefox qui voit le certificat de Let'sEncrypt et affiche bien toutes les images, ainsi que leurs liens en HTTPS et les url des textes.
Si je rajoute le domaine du site de Drupal, j'ai une belle connexion toute bien reconnue par Firefox.

En attendant, je remets tout en http pour que les visiteurs n'aient pas de problème.

Re: download.tuxfamily.org en HTTPS: base de données?

downloads.tuxfamily.org ne "passe pas" au sens change définitivement en HTTPS, on garde l'accès HTTP et HTTPS est fourni en plus.

Pour qu'une page HTTPS soit valable il faut que toutes les ressources externes suivent la demande en HTTPS.

HTTP → Ressources en HTTP et/ou HTTPS
HTTPS → Toutes les ressources doivent être en HTTPS

Le plus simple, c'est d'utiliser des liens vers les ressources en "//domain/path/to/content" pour que le protocole suive automatiquement le protocole de la page demandée, c'est bien cela qu'il faut modifier partout dans les bases de données :-)

Tu n'as pas besoin de modifier la configuration de wordpress pour tester: https://librefan.eu.org/

3 (edited by librefan 2016-03-09 17:37:17)

Re: download.tuxfamily.org en HTTPS: base de données?

Oui, j'ai bien compris, mais j'ai dit «passe», parce qu'avant les images n'étaient pas visibles sur mes Wordpress si on forçait la connexion HTTPS avec NoScript.

Oui, tu as raison pour les liens mais je n'avais pas idée qu'on pouvait faire //domain….

Je vais maintenant essayer voir ce que ça donne sur qqs articles et je vais modifier les bases de données si tout va bien.

Je n'ai pas changé la config de WP, j'ai ajouté mes domaines et download.tuxfamily dans l'onglet HTTPS de Noscript — comme ça mes liens en http «passent» en https, sans que j'ai besoin de modifier la base de données.

Re: download.tuxfamily.org en HTTPS: base de données?

Après réflexion, si je comprends bien,le premier choix, c'est:
Modifier la config de WP en indiquant https://… pour le domaine du site et pour download.tuxfamily.org et modifier la base de données en remplaçant http: //domaine et http: //download.tuxfamily.org/ par //domaine et par //download.tuxfamily.org/

Mais pourquoi ne pas forcer la connexion HTTPS pour le domaine du site et pour download.tuxfamily.org en remplaçant http par https dans la base de données? Tout en modifiant la config de WP pour avoir toujours du https?
Est-ce que cette 2e idée peut poser des problèmes?

Re: download.tuxfamily.org en HTTPS: base de données?

librefan wrote:

Mais pourquoi ne pas forcer la connexion HTTPS pour le domaine du site et pour download.tuxfamily.org en remplaçant http par https dans la base de données? Tout en modifiant la config de WP pour avoir toujours du https?
Est-ce que cette 2e idée peut poser des problèmes?

Ça marche aussi, c'est beaucoup plus définitif toutefois :-)

Sylvain

Re: download.tuxfamily.org en HTTPS: base de données?

Merci, gradator, je vais tenter :-)

Re: download.tuxfamily.org en HTTPS: base de données?

Bon, Mysql me dit que je fais une bêtise mais je n'ai rien trouvé d'autre comme commande que celle-ci:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://librezele.fr.cr', '//librezele.fr.cr');

J'ai remplacé

 '//librezele.fr.cr'

par

 'https://librezele.fr.cr'

mais j'obtiens la même erreur:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''http://librezele.fr.cr''//librezele.fr.cr') FROM wp_posts WHERE' at line 1

J'ai adapté le préfixe de ma table mais ici je mets le préfixe wp par défaut de WordPress. Mes connaissances en SQL sont très limitées mais le web ne me donne rien d'autre que cette commande. Elle a marché dans le temps alors c'est sans doute que la commande a changé un peu depuis Squeeze mais pas moyen de trouver quoi a changé?

Une idée?

Re: download.tuxfamily.org en HTTPS: base de données?

librefan wrote:

mais j'obtiens la même erreur:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''http://librezele.fr.cr''//librezele.fr.cr') FROM wp_posts WHERE' at line 1

Il semblerait tout simplement que tu aies oublié de saisir la virgule entre le deuxième et le troisième argument de ton appel à la fonction REPLACE.

Re: download.tuxfamily.org en HTTPS: base de données?

Merci Xavier de m'aider. Tu veux dire entre

'http://librezele.fr.cr'

et

'//librezele.fr.cr' 

?

Là, j'ai bien mis une virgule.

Re: download.tuxfamily.org en HTTPS: base de données?

librefan wrote:

Merci Xavier de m'aider. Tu veux dire entre

'http://librezele.fr.cr'

et

'//librezele.fr.cr' 

?

Là, j'ai bien mis une virgule.


Salut,

Humm, la query est bonne pourtant, je viens d'essayer avec la db de http://vive-gnulinux.fr.cr/ et c'est passé très bien:

mysql> UPDATE blablabla_posts SET post_content = REPLACE (post_content, 'http://librezele.fr.cr', '//librezele.fr.cr');
Query OK, 48 rows affected (0.21 sec)
Rows matched: 521  Changed: 48  Warnings: 0


L'erreur que tu as est étonnante, cela ressemble à un mélange entre query UPDATE et une query SELECT.

Sylvain

Re: download.tuxfamily.org en HTTPS: base de données?

Bon, en ssh, j'ai réussi pour Worpress (merci gradator) mais il faut faire ainsi:

mysql -h sql -u dbuser -p
Enter password: 

mysql> USE dbname

Dans ma commande ci-dessus, j'ai oublié le ; qui termine une commande mais ça a marché quand même.

Pour dbuser et dbname, j'ai bien sûr remplacé par ce qu'il faut, comme dans PhpMyAdmin.

Le problème est réglé pour WP. Ouf, merci la ligne de commande.

Drupal, c'est une autre paire de manches. Il n'y a pas juste une table du genre wp_posts.
Je n'ai pas l'impression qu'on peut faire juste:

UPDATE  ('http://librefan.eu.org', 'https://librefan.eu.org');

Bon, et en plus, je crois que pour bien tout faire, il faut aussi modifier le .htacess pour que les visiteurs aillent bien sur HTTPS et plus du tout sur HTTP.
Enfin, un pas à la fois.

Re: download.tuxfamily.org en HTTPS: base de données?

Alors, quelques conseils pour le Drupal :

Concernant les remplacements en base de données :
On pourrait s'attendre à ce que la fonction "remplacer" de phpMyAdmin fasse l'affaire ; c'est d'ailleurs le cas pour certains setups simples (càd des Drupals jeunes, n'attendant que la première occasion pour devenir complexes :p) ; dans la pratique, l'extraordinaire tendance de la chose à stocker des données *sérialisées* dans sa base de données pousse à l'utilisation d'outils plus spécialisés tels que https://interconnectit.com/products/sea … databases/ , qui a le grand avantage de pouvoir gérer les remplacements dans des données sérialisées (sans devoir recourir à du vaudou de type "je dump, je claque un one-liner Perl tiré du dernier cercle de l'enfer sur le dump, je reload"). À noter que sa feature "dry-run" ne dispense PAS de faire une sauvegarde avant.

Concernant les URLs générées par l'application : il convient généralement d'ajuster $base_url dans settings.php ; deux écoles :
École #1 : mettre une $base_url en https, et implémenter via .htaccess la redirection qui va bien pour oublier complètement HTTP
École #2 : écrire un peu de code PHP dans le settings.php pour déterminer le protocole de la requête en cours de traitement et l'utiliser dans la base url.
Je ne sais pas si Drupal peut accepter une PRURL (une URL qui commence par // si tu préfères) en guise de $base_url... Je crois pouvoir affirmer que tu ne veux t'aventurer ni là-dedans ni dans la deuxième école...

Si par hasard, tu utilises le module tuxfamily_repository ( cf https://faq.tuxfamily.org/WebArea/Compat/Drupal7/Fr ) : tu voudras modifier, dans les options avancées du module, le paramètre "Base URL of your TuxFamily repository" ou alors tu peux claquer directement dans ton settings.php:

$conf['tuxfamily_repository_base_url_pattern'] = 'https://download.tuxfamily.org/@project/@path';

Re: download.tuxfamily.org en HTTPS: base de données?

Merci  beaucoup, Xavier, de ces infos :-)

Dans la base de données:
J'ai lu que certains n'ont rien trouvé de mieux qu'importer leur DB, et faire search and replace dans Geany ;-)
L'outil dont tu parles est pour WP. Il y a des modules pour Drupal mais j'ai lu que les requêtes peuvent se terminer dans un timeout. C'est pas très rassurant d'utiliser un module depuis un site web pour aller modifier la base de données.

URLs générées par Drupal
Oui, j'ai vu en lisant sur Drupal:

École #1 : mettre une $base_url en https, et implémenter via .htaccess la redirection qui va bien pour oublier complètement HTTP

$base_url se met dans settings.php, d'après ce que j'ai lu.
Je vais relire la doc concernant .htaccess dans Drupal.

Tu as raison, l'école 2 c'est pas pour moi…

Mon Drupal est vieux (datant de D6) et sans doute un peu encrassé.

Non, je n'utilise pas le module tuxfamily_repository, ne mettant pas bcp d'images, je les mets «à la main» et j'attends Drupal8 pour faire les images plus simplement. Je pense que ce module sera inutile vu que tout le monde met  maintenant ses images dans des CDN. TF était en avance, avec son home-made quasi CDN (sans le beurk cloud, quand c'est pas chez soi ou chez qq'un en qui on peut avoir confiance).

Oui, je vais sauvegarder ma DB de Drupal, je sais comment Drupal peut foirer. Ce matin, voilà la sauvegarde à jour.

Re: download.tuxfamily.org en HTTPS: base de données?

L'outil dont tu parles est pour WP.

Nan. Ça reste un outil générique, que tu peux utiliser avec Drupal comme avec n'importe quel base de données. Les dernières versions comportent des trucs en plus pour Drupal / Wordpress mais tu peux vivre sans. Et si je te conseille cet outil-là, c'est parce que je l'ai vu rendre de bons services sur des Drupals en milieu professionnel. Je te rejoins sur l'idée qu'un module Drupal pour modifier une base de données Drupal, c'est foireux.

Pour tuxfamily_repository, on l'avait écrit parce que le module "cdn" pour Drupal 7 ne faisait pas exactement l'affaire ; je ne sais pas si ça s'arrangera pour Drupal 8 (et sans vouloir faire mon oiseau de mauvaise augure, à ta place, je laisserais un peu d'eau couler sous les ponts avant de passer à D8).

Re: download.tuxfamily.org en HTTPS: base de données?

Merci Xavier, je vais regarder cet outil alors.

Ne t'en fais pas, je ne vais pas passer à D8 rapidement. D'abord, j'attends tranquillement que TF soit passé à Jessie, autrement, D8 ne marchera pas. Et je prendrai le temps de voir chez moi ce que ça donne.

Pour ne pas allonger ce topic qui a dévié vers Drupal, j'en ai ouvert un autre spécifiquement pour Drupal en HTTPS: https://forum.tuxfamily.org/topic/666/h … -drupal-7/