Après un changement de routeur, votre serveur Minecraft n’arrive plus à joindre Yggdrasil (Mojang) et affiche une erreur d’authentification. Voici une méthode structurée, reproductible et exhaustive pour diagnostiquer puis corriger la cause réseau ou logicielle.
Problème de connexion d’un serveur Minecraft auto‑hébergé à Yggdrasil
Vue d’ensemble de la question
Symptôme observé côté serveur :
Failed to request yggdrasil public key – AuthenticationUnavailableException: Cannot contact authentication server
Contexte typique : le serveur Minecraft fonctionnait jusqu’au remplacement du routeur. Les tentatives suivantes n’ont pas résolu le problème : désactivation du pare‑feu Windows, vidage du cache DNS, désactivation d’IPv6.
Traduction technique de l’erreur : le processus Java de votre serveur n’arrive pas à établir (ou valider) une connexion HTTPS vers les services Mojang/Yggdrasil (par ex. authserver.mojang.com
, sessionserver.mojang.com
). La cause se situe presque toujours dans l’un de ces domaines :
- Filtrage TLS/HTTP(S) ou proxy/antivirus interposés (routeur, “WebSafe”, contrôle parental, proxy d’entreprise, DNS filtrant, Pi‑hole, DoH/DoT forcé, inspection SSL, QoS agressif, etc.).
- Résolution DNS incorrecte (serveur DNS du routeur défaillant, empoisonnement de cache, redirection vers une page de blocage ou walled garden du FAI, DNS menteur).
- Horloge système désynchronisée, entraînant un rejet de la négociation TLS et des jetons OAuth.
- Environnement Java obsolète/cassé (ciphers/TLS, truststore), ou composant serveur (Paper/Spigot) dépassé.
- Problèmes d’adressage locaux : NAT loopback manquante pour les clients LAN qui se connectent via l’IP publique.
Réponse & solutions proposées
Étape | Objectif | Détails |
---|---|---|
1. Démarrage en “clean boot” | Écarter l’influence d’un logiciel tiers (antivirus, proxy, VPN, filtre parental, etc.) | Démarrer Windows avec les seuls services Microsoft activés, puis tester la connexion. Si le problème disparaît, réactiver les services un par un pour identifier le coupable. |
2. Vérifier l’accès HTTPS sortant | Yggdrasil utilise les API Mojang sur les ports 443 (TLS) | Depuis le poste hôte : curl https://authserver.mojang.com --head et https://sessionserver.mojang.com --head doivent répondre en 200/204. Sur le routeur, désactiver tout filtrage “WebSafe/Parental Control” ou QoS bloquant TLS. |
3. Contrôler la résolution DNS | Un DNS corrompu empêche la connexion | nslookup authserver.mojang.com doit retourner une adresse AWS. En cas d’échec, passer temporairement aux DNS publics (Cloudflare 1.1.1.1, Google 8.8.8.8) dans la carte réseau ou le routeur. |
4. Synchroniser l’horloge système | Les jetons OAuth de Mojang sont sensibles au décalage horaire | Vérifier que l’horloge Windows est réglée automatiquement sur un serveur NTP fiable. |
5. Inspecter le fichier hosts | Éliminer les remappages locaux | S’assurer qu’aucune ligne concernant mojang.com n’est présente dans %SystemRoot%\System32\drivers\etc\hosts . |
6. Mettre à jour Java & Minecraft | Éviter un TLS obsolète | Installer la dernière version de Java 17 (ou la version requise par votre serveur). Mettre à jour le serveur Minecraft (Spigot/Paper/etc.). |
7. Test direct sans routeur | Confirmer la cause matérielle | Connecter temporairement le PC hôte directement au modem (ou partager la 4G), relancer le serveur et tenter la connexion : • Si cela fonctionne, la configuration du nouveau routeur est en cause (firewall, DNS, NAT loopback). • Sinon, le problème vient du PC ou du réseau du FAI. |
8. Vérifier la redirection NAT loopback (si clients internes) | Permettre aux joueurs du même réseau local de se connecter par l’IP publique | Activer “NAT loopback / hairpin NAT” ou utiliser l’IP locale plutôt que l’IP WAN. |
Ce qui se passe côté Yggdrasil (plongée rapide)
Pour autoriser les connexions online-mode, votre serveur interroge Yggdrasil (API Mojang) pour valider les comptes joueurs et récupérer des clés publiques. Ce dialogue repose exclusivement sur HTTPS (TLS 1.2/1.3) et la validation de certificats via la truststore Java. Toute interception TLS (filtre parental, antivirus avec “inspection SSL”, proxy d’entreprise, routeur réalisant une réécriture SNI) rompt la confiance et déclenche des exceptions du type AuthenticationUnavailableException
, SSLHandshakeException
ou PKIX path building failed
.
Procédures détaillées — pas à pas
Démarrage en “clean boot” (Windows)
- Appuyez sur Win + R, tapez
msconfig
et validez. - Onglet Services : cochez Masquer tous les services Microsoft, puis cliquez sur Désactiver tout.
- Onglet Démarrage > Gestionnaire des tâches : désactivez les éléments non Microsoft.
- Redémarrez, relancez le serveur Minecraft et testez.
Si l’authentification fonctionne en clean boot, réactivez les services par lot (par ex. antivirus, VPN, proxy, accélérateurs, filtrage DNS local) jusqu’à isoler celui qui casse le TLS sortant.
Tester l’accès HTTPS vers Yggdrasil
Depuis la machine hôte (PowerShell ou CMD) :
curl https://authserver.mojang.com --head
curl https://sessionserver.mojang.com --head
curl https://api.minecraftservices.com --head
Résultat attendu : un code 200 ou 204 avec des en‑têtes TLS valides. Si vous voyez un portail captif, une page de blocage ou un certificat émis par le routeur/antivirus, vous avez trouvé l’origine.
Alternative PowerShell (utile sur machines sans cURL moderne) :
Test-NetConnection -ComputerName authserver.mojang.com -Port 443
try { (Invoke-WebRequest https://authserver.mojang.com -Method Head -TimeoutSec 10).StatusCode } catch { $_.Exception.Message }
Contrôler la résolution DNS
La chaîne la plus solide casse si le maillon DNS est faible. Vérifiez :
nslookup authserver.mojang.com
nslookup sessionserver.mojang.com
ipconfig /all
Si la résolution échoue ou renvoie une IP non routable/privée, basculez temporairement en DNS publics (au niveau de l’interface réseau Windows ou du routeur) : 1.1.1.1 et 8.8.8.8. Purgez ensuite les caches :
ipconfig /flushdns
net stop dnscache && net start dnscache
Certains routeurs appliquent des listes de blocage (adblock/“protection famille”) côté DNS ; mettez en liste d’autorisation les domaines Mojang (voir plus bas) et désactivez toute réécriture DNS (DNS‑over‑HTTPS forcé, DNS menteur, redirection NXDOMAIN).
Synchroniser l’horloge Windows
Un écart de quelques minutes suffit à invalider les certificats ou tokens OAuth. Exécutez :
timedate.cpl
w32tm /query /status
w32tm /config /update /manualpeerlist:"time.windows.com time.google.com" /syncfromflags:manual
w32tm /resync
Assurez‑vous que le BIOS/UEFI et Windows sont en UTC cohérente (surtout après changements matériels).
Inspecter le fichier hosts
Ouvrez %SystemRoot%\System32\drivers\etc\hosts
avec un éditeur en mode administrateur et supprimez toute entrée concernant mojang.com
, minecraft.net
ou les domaines listés ci‑dessous. Sauvegardez puis :
ipconfig /flushdns
Mettre à jour Java et votre serveur
Vérifiez votre version Java :
java -version
Installez Java 17 (ou la version requise par votre distribution serveur) depuis une source officielle. Supprimez les anciennes versions si possible pour éviter les conflits de truststore. Mettez aussi à jour Paper/Spigot et vos plugins ; les versions récentes utilisent les API modernes des services Minecraft.
Bypass du routeur (test sans routeur)
Ce test tranche rapidement :
- Branchez le PC directement sur le modem du FAI (si possible) ou partagez la connexion 4G d’un smartphone par USB/Wi‑Fi, puis relancez le serveur et tentez l’authentification.
- Si tout fonctionne sans le routeur, celui‑ci est le coupable (filtrage TLS, DNS, inspection, QoS, MTU…).
NAT loopback pour les clients LAN
Les joueurs sur le même LAN qui tentent de rejoindre via l’IP publique peuvent échouer si le routeur ne supporte pas la boucle de cheveux (hairpin NAT). Solutions :
- Dans le routeur, activez l’option NAT loopback (parfois appelée NAT reflection / hairpin NAT).
- Ou bien demandez aux clients LAN d’utiliser l’IP privée du serveur (
192.168.x.x
) au lieu de l’IP WAN. - Ou mettez en place une entrée DNS locale (split‑DNS) qui résout votre domaine public vers l’IP privée à l’intérieur du LAN.
Vérifications routeur courantes
Les firmwares récents activent parfois par défaut des protections qui cassent le trafic sortant chiffré ou la résolution :
- Contrôle parental / WebSafe / SafeBrowse : désactivez‑le ou créez une liste d’autorisation pour les domaines Mojang.
- DNS filtrant (adblock, DoH/DoT forcé) : neutralisez les redirections, testez avec DNS publics et un simple forwarder non filtrant.
- Inspection TLS / Proxy transparent : désactivez la détection SNI/“SSL inspection”. L’authentification Mojang ne tolère pas l’interception.
- QoS/Traffic shaping agressif sur 443 : testez sans QoS, certains algorithmes basés sur l’empreinte TLS (JA3) bloquent des clients Java.
- Protection anti‑rebinding : vérifiez qu’elle n’interfère pas avec vos noms internes (si vous utilisez un domaine privé).
- MTU/MSS clamping : en cas de symptômes intermittents, fixez un MSS ajusté (p. ex. 1452) sur l’interface WAN et retestez.
Diagnostic avancé
Augmenter la verbosité réseau Java
Lancez votre serveur avec :
set JAVA_TOOL_OPTIONS=-Djava.net.debug=all
java -Xmx4G -Xms4G -jar paper.jar nogui
Recherchez dans la sortie les lignes relatives à authserver.mojang.com
/ sessionserver.mojang.com
: résolution DNS, échec de handshake, ciphers refusés, certificat inconnu, etc.
Paramètre JVM utile (cas SNI filtré)
Si un routeur/proxy filtre des en‑têtes, ce paramètre peut permettre un diagnostic (pas un correctif durable) :
-Djdk.httpclient.allowRestrictedHeaders
Idéalement, corrigez la configuration réseau plutôt que de contourner le filtrage.
Vérifier la truststore Java
Un PKIX path building failed
indique souvent une truststore corrompue/obsolète :
"%JAVA_HOME%\bin\keytool" -list -keystore "%JAVA_HOME%\lib\security\cacerts" -storepass changeit | more
Si votre Java vient d’un paquetage exotique, basculez sur une distribution bien maintenue (Adoptium/Temurin, Microsoft Build of OpenJDK, etc.).
Pare‑feu Windows (sortant)
Par défaut, Windows autorise les flux sortants. Si une stratégie de sécurité les bloque, ajoutez des règles de sortie pour java.exe
sur le port 443 TCP et testez à nouveau.
Tableau de correspondance erreurs → causes probables
Message ou symptôme | Cause la plus probable | Action immédiate |
---|---|---|
AuthenticationUnavailableException | Impossible de joindre les serveurs Yggdrasil (blocage TLS/DNS) | Tester curl --head , désactiver filtrage routeur, changer DNS |
SSLHandshakeException / certificate unknown | Inspection SSL/Proxy, certificat non approuvé, horloge système fausse | Désactiver inspection, resynchroniser l’horloge, vérifier truststore |
Résolution lente/échecs aléatoires | DNS routeur instable, adblock DNS, DoH/DoT mal configuré | Fixer DNS 1.1.1.1/8.8.8.8, vider cache, liste d’autorisation |
Clients LAN ne se connectent pas via IP publique | NAT loopback absente | Activer hairpin NAT ou utiliser IP privée |
PKIX path building failed | Java truststore cassée/obsolète | Mettre à jour Java, réinstaller cacerts |
Informations complémentaires utiles
- Liste des domaines à autoriser :
authserver.mojang.com
,sessionserver.mojang.com
,textures.minecraft.net
,api.minecraftservices.com
. Tous utilisent HTTPS (port 443). - Paramètre JVM : si vous utilisez une version récente de Java avec un routeur filtrant le SNI TLS, ajouter
-Djdk.httpclient.allowRestrictedHeaders
peut contourner certains problèmes, mais il est préférable de corriger la configuration réseau. - Logs plus verbeux : lancer le serveur avec la variable d’environnement
JAVA_TOOL_OPTIONS="-Djava.net.debug=all"
pour inspecter la résolution DNS et la négociation TLS.
Check‑list de dépannage rapide
- Tester
curl --head
sur les quatre domaines clés et confirmer les codes 200/204. - Passer provisoirement en DNS publics, purger
ipconfig /flushdns
, retester. - Resynchroniser l’horloge Windows avec
w32tm /resync
. - Neutraliser temporairement antivirus/inspection SSL/proxy, puis réactiver progressivement.
- Mettre à jour Java 17 et votre distribution serveur (Paper/Spigot).
- Contourner le routeur (tethering 4G ou modem direct). Si OK, corriger la configuration du routeur.
- Pour les joueurs LAN : activer le hairpin NAT ou utiliser l’IP locale.
Bonnes pratiques pour éviter les régressions
- Documenter votre configuration routeur (export/backup) avant tout changement de firmware ou de pare‑feu.
- Éviter les “suites de sécurité” qui interceptent TLS sur un serveur de jeux ; préférez un antivirus léger sans inspection SSL.
- Centraliser la résolution DNS (unbound/dnsmasq) sans filtres agressifs ; les listes de blocage peuvent être appliquées aux clients, pas au serveur.
- Automatiser la mise à jour de Java et du serveur (scripts, service Windows) pour rester compatible avec les exigences TLS modernes.
- Surveiller les logs serveur et exporter régulièrement les fichiers de configuration.
Exemples de commandes utiles (bloc mémo)
:: Tests HTTP(S)
curl https://authserver.mojang.com --head
curl https://sessionserver.mojang.com --head
curl https://api.minecraftservices.com --head
:: DNS & réseau
nslookup authserver.mojang.com
ipconfig /all
ipconfig /flushdns
tracert authserver.mojang.com
:: Temps & services
w32tm /query /status
w32tm /resync
:: Lancement Java verbeux
set JAVA_TOOL_OPTIONS=-Djava.net.debug=all
java -Xmx4G -Xms4G -jar paper.jar nogui
FAQ
Faut‑il désactiver IPv6 ?
Non par principe. Minecraft/Yggdrasil fonctionne en IPv4 et IPv6. Désactiver IPv6 masque souvent un vrai problème (DNS ou filtrage TLS) sans le résoudre réellement.
Le pare‑feu Windows peut‑il bloquer ?
Rarement en sortie (règle par défaut : autoriser). Si une stratégie de sécurité a inversé ce comportement, autorisez java.exe
vers TCP/443.
Dois‑je ouvrir des ports entrants pour l’authentification ?
Non. L’authentification utilise des connexions sortantes depuis votre serveur vers les services Mojang. Les ports entrants concernent uniquement les joueurs qui rejoignent votre serveur (par défaut TCP/25565).
Pourquoi cela a‑t‑il commencé après le changement de routeur ?
Parce que de nombreux routeurs activent par défaut des protections (contrôle parental, filtre DNS, inspection TLS, QoS) qui perturbent les clients Java. Désactivez/ajustez ces fonctions pour le serveur.
Le message mentionne la “public key” Yggdrasil ; est‑ce un problème de clé côté serveur ?
Non. La “public key” est récupérée auprès des serveurs Mojang via HTTPS. Si la requête échoue, c’est un souci de transport (DNS/TLS/filtrage), pas une clé manquante côté serveur Minecraft.
Conclusion
En appliquant rigoureusement les étapes ci‑dessus, vous identifierez rapidement la cause de Failed to request yggdrasil public key – AuthenticationUnavailableException : le plus souvent un filtre HTTPS du nouveau routeur, une résolution DNS incorrecte ou un logiciel de sécurité tiers bloquant la requête TLS sortante. Validez d’abord la connectivité HTTPS et la résolution DNS, resynchronisez l’horloge, puis isolez le coupable via un clean boot et un test sans routeur. Enfin, activez le hairpin NAT pour les clients locaux. Une fois ces points corrigés, l’authentification Yggdrasil redevient fiable et vos joueurs peuvent se connecter en ligne en toute sérénité.