Le test du certificat valide pour activer force_https est cassé, le laissant désactivé alors qu'il devrait être activé

Édit : je change cela en un bug. Force_https est maintenant désactivé sur des sites où il était auparavant activé, ce qui casse certaines fonctionnalités.


J’ai passé un moment à déboguer un site où « les uploads ne fonctionnent pas ». Après avoir énuméré toutes les solutions évidentes (reconstruction, mode sans échec, prise en compte de plugins non standard), j’ai finalement remarqué un avertissement de contenu mixte et activé force_https, et tout fonctionne à nouveau.

Je pensais qu’il y a un ou deux ans, force_https était activé par défaut, mais récemment, j’ai entendu (ou peut-être vu) à plusieurs reprises que des problèmes survenaient parce que force_https n’était pas activé.

Y a-t-il une raison de ne pas l’activer par défaut ?
[/quote]

J’ai passé un moment à déboguer un site où « les uploads ne fonctionnent pas ». Après avoir énuméré toutes les solutions évidentes (reconstruction, mode sans échec, prise en compte de plugins non standard), j’ai finalement remarqué un avertissement de contenu mixte et activé force_https, et tout fonctionne à nouveau.

Je pensais qu’il y a un ou deux ans, force_https était activé par défaut, mais récemment, j’ai entendu (ou peut-être vu) à plusieurs reprises que des problèmes survenaient parce que force_https n’était pas activé.

Y a-t-il une raison de ne pas l’activer par défaut ?

1 « J'aime »

Cela est activé automatiquement dans discourse.conf si un certificat valide est présent.
Cela est effectivement en place depuis un ou deux ans.

grep -q 'force_https' "/var/www/discourse/config/discourse.conf" || echo "force_https = 'true'" >> "/var/www/discourse/config/discourse.conf"

1 « J'aime »

Aha ! Merci, Richard.

Donc je ne suis pas en train de devenir fou.

Le problème est que le test de validité du certificat échoue :

# openssl verify -CAfile ca.cer fullchain.cer 
O = Digital Signature Trust Co., CN = DST Root CA X3
error 10 at 3 depth lookup: certificate has expired
error fullchain.cer: verification failed

Ensuite, si je retire mozilla/DST_Root_CA_X3.crt de /etc/ca-certificates.conf et que j’exécute update-ca-certificates, j’obtiens ceci :

C = US, O = Internet Security Research Group, CN = ISRG Root X1
error 2 at 2 depth lookup: unable to get issuer certificate
error fullchain.cer: verification failed

Le certificat s’affiche correctement dans le navigateur. Et j’ai reconstruit ce conteneur aujourd’hui (il devrait donc contenir les certificats racines mis à jour).

Je ne connais pas assez ce sujet pour savoir exactement ce qui se passe. Je peux curl un certificat Let’s Encrypt depuis l’intérieur du conteneur (un test qui échouait sur un conteneur WordPress avec lequel je travaillais la semaine dernière).

Et ce n’est pas seulement moi cette fois ; plusieurs personnes ont récemment résolu le problème en activant force_https (voir les discussions récentes).

1 « J'aime »

Oui, cela semble lié à l’expiration du certificat racine de Let’s Encrypt, surtout si le problème a commencé après vendredi dernier.

Que retourne la commande openssl version (à l’intérieur du conteneur Docker) ? (En raison de ce changement).

2 « J'aime »
OpenSSL 1.1.1d  10 sep 2019

Donc, peut-être que cela nécessite « ISRG Root X1 dans le magasin de confiance » ? Mais je vois mozilla/ISRG_Root_X1.crt dans ca-certificates.conf.

1 « J'aime »

OMG. Et j’ai passé deux jours à déboguer un problème que je croyais être une question complexe impliquant Rails, Ansible et Python, alors qu’en fait, mon serveur qui avait auparavant force_https activé ne l’a plus maintenant, et un grand nombre de requêtes ont été envoyées vers http://myserver au lieu de https://myserver.

Cela semble être un bug.

2 « J'aime »

Oui, il s’agit bel et bien d’un bug.

La semaine dernière, nous déplaçions un forum vers un autre serveur et nous avons atteint la limite de réémission de Let’s Encrypt (maximum 5 par semaine pour le même nom d’hôte). Au début, nous ne savions pas pourquoi, mais ce bug a provoqué la réémission du certificat à chaque construction. Après cinq tentatives, nous avons atteint la limite de taux. Cela n’a pas déclenché d’alerte car l’ancien certificat était toujours présent sur le serveur.

Ce n’est que lors du déplacement du forum vers un nouveau serveur que nous n’avons pas obtenu de nouveau certificat. Nous aurions pu le copier depuis l’ancien serveur, mais nous n’avons jamais compris ce qui en était la cause.

acme.sh est verrouillé sur la version 2.9.0, tandis que la branche master est à la version 3.0.1 et dispose d’une fonctionnalité permettant de définir une chaîne par défaut, ce qui pourrait, selon moi, être lié au problème.

3 « J'aime »

Salut @Falco. Tu veux jeter un coup d’œil à ça ? Tu sembles bien connaître ces sujets. J’ai essayé de comprendre ça pendant plusieurs heures au cours des dernières semaines, mais je ne vois toujours pas ce qui se passe.

1 « J'aime »

Oui, je me suis chargé de cela ce week-end. C’est un long week-end de fête ici, mais je le regarderai cette semaine dès que possible.

2 « J'aime »

Ah, c’est la partie que j’avais manquée. Désolé de vous avoir dérangé alors.

Notre long week-end de vacances vient de se terminer, et la fête de Notre-Dame d’Aparecida n’était pas dans mon calendrier. Mais maintenant, je le sais.

Merci.

2 « J'aime »

Ceci est résolu par

5 « J'aime »

Merci @Falco pour ton travail acharné sur ce sujet :slight_smile:

2 « J'aime »