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?
Re: SSL marqué comme expiré à l'activation des services web
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
Re: SSL marqué comme expiré à l'activation des services web
il existe également le site https://www.sslshopper.com/ssl-checker.html
Ce n'est pas le seul, mais le rapport est de base assez complet
Bruno
Re: SSL marqué comme expiré à l'activation des services web
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 :
Re: SSL marqué comme expiré à l'activation des services web
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
Re: SSL marqué comme expiré à l'activation des services web
Elle est bien listée dans les versions touchées au niveau du tracker
Re: SSL marqué comme expiré à l'activation des 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?
Re: SSL marqué comme expiré à l'activation des services web
Ca te donne des idées?
Re: SSL marqué comme expiré à l'activation des services web
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
Re: SSL marqué comme expiré à l'activation des services web
// 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.
Re: SSL marqué comme expiré à l'activation des services web
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.
Re: SSL marqué comme expiré à l'activation des services web
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.