SSL marqué comme expiré à l'activation des services web

SSL marqué comme expiré à l'activation des services web

par Géro AIHONNOU,
Nombre de réponses : 11

Dès que j'active les services web pour application mobile, moodle me renvoie une alerte disant que le certficat SSL est expiré alors que ce n'est pas le cas et qu'il est valide. Pouvez-vous m'aider?

Moyenne des évaluations  -
En réponse à Géro AIHONNOU

Re: SSL marqué comme expiré à l'activation des services web

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Géro,

Bienvenue dans notre communauté 😊

Il va falloir plus de précision. Tu peux te baser sur notre « Formulaire de description d'une demande d'aide ».

Sinon, je pense que le problème pourrait venir, non pas directement de ton certificat, mais de la « chaine de certificats » (cf cette description). Pourquoi pas essayer un outil en ligne comme : https://whatsmychaincert.com/ ? Résoudre ce problème dans un premier temps pourrait régler la totalité.

À bientôt,
Patrick

Moyenne des évaluations Utile (1)
En réponse à Patrick Lemaire

Re: SSL marqué comme expiré à l'activation des services web

par Géro AIHONNOU,
Bonjour Patrick, merci pour la recommandation, je rajoute donc des infos :
Contexte technique

Version Moodle précise : 3.10.3+ (Build: 20210413)
Thème Moodle utilisé : Edumy
Version PHP : 7.3.27
Base de données (MariaDB, MySQL, etc.) et version : MySQL 5.7.23
Navigateur web : Edge Chromium

Pour ce qu'il en ai des tests, je les avais fait avant de poster ici. Je viens de les refaire pour avoir des captures. Je vous les envois :







Côté moodle, j'ai tout bien réglé (je pense).

Sur le site, le SSL est bien installé 


Le routage dans config.php 


J'ai exécuté l'outil de conversion HTTPS et activé les cookies sécurisés.


Mais j'ai toujours l'erreur.

Le lien du site : kalanacademy.org au cas où



En réponse à Géro AIHONNOU

Re: SSL marqué comme expiré à l'activation des services web

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Bonjour,

Peut-être un lié à un petit bug : [MDL-71348] ?
Quelle est votre version de Moodle ? pour comparer avec les versions indiquées dans le tracker

Après pour info, chez moi dans un navigateur, si je saisi uniquement "kalanacademy.org" , il semble qu'il y ait une boucle de redirection.
Pour accéder à votre site, je suis obligé de mettre "https://kalanacademy.org"
Il manque certainement une redirection des connexions http (port 80) vers https (port 443)

Bruno
Moyenne des évaluations Utile (1)
En réponse à Bruno Malaval

Re: SSL marqué comme expiré à l'activation des services web

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Désolé, je n'avais pas vu la version (3.10.3)
Elle est bien listée dans les versions touchées au niveau du tracker
Moyenne des évaluations Utile (1)
En réponse à Bruno Malaval

Re: SSL marqué comme expiré à l'activation des services web

par Géro AIHONNOU,
Bonsoir Bruno. J'ai réglé la redirection du port 80 vers https. merci vraiment pour l'attention. Malheureuses, ca ne marche toujours pas quand J'active les services web.

Je sais pas comment utilisé le lien MDL-71348. Je n'ai pas compris quoi faire. Dois-je remplacer le contenu du fichier par celui sur Github?
En réponse à Bruno Malaval

Re: SSL marqué comme expiré à l'activation des services web

par Géro AIHONNOU,
En attendant ta réponse, j'ai pensé a activé l'affichage des erreurs PHP et activer le débogage Moodle. Je suis allé sur la page d'activation des services web, j'ai ca.
Ca te donne des idées?


En réponse à Géro AIHONNOU

Re: SSL marqué comme expiré à l'activation des services web

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Dans le tracker, il était indiqué que le problème pouvait être une majuscule dans l'attribut "Start date",
si le code est "Start Date", la vérification ne fonctionne pas.

Cela ne semble pas être le cas, vu que l'erreur php indique "Undefined index : Start date"
Mais cela voudrait dire que Moodle ne retrouve pas cette information dans les certificats.

je dirais bien que cela vient de la chaîne de certification, qui contient 3 certificats. D'autant que le message se termine par "La chaîne de certificat n'est pas valide"
Peut-être que les certificats de la chaîne ont justement l'information enregistrée sous la forme "Start Date" et non "Start date".

Pour tester, je pense que tu pourrais modifier temporairement le code du fichier
../admin/tool/mobile/classes/api.php , vers la ligne 624 remplacer :

if (strtotime($cert['Start date']) > $timenow) {
  $warnings[] = ['invalidcertificatestartdatewarning', 'tool_mobile'];
}

par

if (array_key_exists('Start date', $cert)) {
if (strtotime($cert['Start date']) > $timenow) {
  $warnings[] = ['invalidcertificatestartdatewarning', 'tool_mobile'];
}
} else {
if (strtotime($cert['Start Date']) > $timenow) {
  $warnings[] = ['invalidcertificatestartdatewarning', 'tool_mobile'];
}
}

Et idem pour la partie "Expire date".
Après, il faut bien voir qu'il s'agit de warning , ce qui n'est pas bloquant pour l'utilisation mobile

Bruno



Moyenne des évaluations Utile (1)
En réponse à Bruno Malaval

Re: SSL marqué comme expiré à l'activation des services web

par Géro AIHONNOU,
Merci Bruno pour ton aide. Elle vient de me permettre de résoudre le problème.


                    // Check certificate start date.
                    if (strtotime($cert['Start Date']) > $timenow) {
                        $warnings[] = ['invalidcertificatestartdatewarning', 'tool_mobile'];
                    }
                    // Check certificate end date.
                    if (strtotime($cert['Expire Date']) < $timenow) {
                        $warnings[] = ['invalidcertificateexpiredatewarning', 'tool_mobile'];
                    }
                    // Check the chain.
                    if ($expectedissuer !== null) {
                        if ($expectedissuer !== $cert['subject'] || $cert['subject'] === $cert['issuer']) {
                            $warnings[] = ['invalidcertificatechainwarning', 'tool_mobile'];
                        }
                    }
                    $expectedissuer = $cert['issuer'];

Pour l'erreur sur la chaine du certificat, j'ai du mettre Subject et Issuer en minuscule dans la 4è if puis dan la variable en dessous pour que le warning parte.

Le soucis avec ca, c'est que si la prochaine mise à jour Moodle ne prend pas en compte cette erreur, les message reviendront. Et le client ne comprend pas l différence. Pour lui, c'est que je lui ai fourni un mauvais certificat.

Merci vraiment pour ton aide.

En réponse à Géro AIHONNOU

Re: SSL marqué comme expiré à l'activation des services web

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Content que ce soit résolu.

Après, le problème n'est pas forcément coté Moodle.
Je ne suis pas spécialiste en certificats, mais le problème peut être dans la génération des certificats en eux-même.
Si les règles de génération sont de respecter la casse dans les attributs, dans ce cas c'est l'organisation émettrice du certificat qui est en faute.

Mais là, je ne connais pas suffisamment les règles de génération des certificats, et pour ceux qui connaissent, pas envie de me lancer dans les lectures des RFC à ce sujet ... 😁

Bruno
Moyenne des évaluations Utile (1)
En réponse à Bruno Malaval

Re: SSL marqué comme expiré à l'activation des services web

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Histoire de faire profiter l'équipe Moodle de cette discussion, je me suis permis d'en faire mention dans le tracker.
Comme tu le dis, je ne suis pas sûr que cela soit intégré dans Moodle si ce sont les certificats qui ne respectent pas les règles.