Résoudre l’erreur ERR_SSL_UNSUPPORTED_EXTENSION sur Node.js
Découvrez comment corriger l’erreur ERR_SSL_UNSUPPORTED_EXTENSION, liée aux incompatibilités d’OpenSSL sur des environnements Node.js (v18+) et frameworks comme React, Angular, et Next.js. Ce guide inclut des solutions pratiques, telles que l’utilisation de --openssl-legacy-provider, pour faciliter la gestion des certificats SSL et des intégrations API.
Utilisez notre chatbot gratuit pour vous aider à résoudre vos problèmes techniques.
Résumé des points clés
- Nature de l’erreur : Liée aux incompatibilités d’OpenSSL utilisées par Node.js.
- Environnement concerné : Node.js 18+, React, Angular, et intégrations d’API (Googleapis, Make.com, Next.js).
- Solution clé : Utiliser l’option OpenSSL legacy avec
node --openssl-legacy-provider.
Étape 1 : Comprendre l’erreur ERR_SSL_UNSUPPORTED_EXTENSION
Description :
Cette erreur est déclenchée par des incompatibilités ou des configurations inappropriées liées à OpenSSL sur des applications web utilisant Node.js. Elle est souvent rencontrée lors de la migration vers des versions récentes de Node.js (v18 et supérieures), où OpenSSL a été déprécié ou remplacé par des options plus modernes.
Impact :
- Empêche le lancement de certaines applications Node.js ou leurs frameworks (React, Angular, etc.).
- Perturbe les intégrations avec des services tiers (Google APIs, Make.com, etc.).
Étape 2 : Diagnostiquer l’environnement
Vérifiez les points suivants :
-
Version de Node.js utilisée :
- Tapez
node -vdans le terminal pour connaître la version. - Versions sujettes au problème : ≥ 18.x, en raison des changements concernant OpenSSL.
- Tapez
-
Certificats SSL/TLS :
- Assurez-vous qu’ils sont valides et correctement configurés, surtout si vous intégrez des API tierces.
-
Framework ou outil impliqué :
- Est-ce une application React, Angular, ou une intégration Next.js ?
- Les étapes peuvent varier légèrement selon l’environnement.
Étape 3 : Implémenter la solution
Solution pour React :
-
Ajoutez l’option OpenSSL lors de l’exécution :
node --openssl-legacy-provider your_script.js -
Modifiez votre script de démarrage dans le fichier
package.json:"scripts": { "start": "node --openssl-legacy-provider react-scripts start", "build": "node --openssl-legacy-provider react-scripts build" } -
Pour Windows :
Si vous utilisez un terminal spécifique (CMD/PowerShell), liessez cette commande avant l’exécution.
Solution pour Angular :
-
Exécutez Angular CLI comme suit :
node --openssl-legacy-provider ng serve -
En production : Ajoutez cette option dans les scripts NPM :
"scripts": { "start": "node --openssl-legacy-provider ng serve", "build": "node --openssl-legacy-provider ng build" }
Solution pour Next.js et Google APIs :
- Vérifiez que vos clés API sont valides et bien configurées.
- Si l’erreur persiste, forcez les options OpenSSL comme suit :
node --openssl-legacy-provider next build
Solution pour Make.com :
-
Testez vos certificats SSL/TLS :
- Recommandé : Utilisez un outil en ligne tel que SSL Checker.
- Assurez-vous que vos certificats ne sont pas expirés ou mal configurés.
-
Contactez le fournisseur de l’ERP intégré via Make.com si les certificats continuent de poser problème.
Étape 4 : Vérifications après implémentation
-
Testez votre application :
- Assurez-vous qu’elle s’exécute correctement sur l’environnement souhaité (local ou production).
-
Validez les changements apportés :
- Testez les intégrations API (Google, Make.com) à l’aide de leurs interfaces ou outils de diagnostic.
- Pour Next.js : Visitez l’application via un navigateur ou un outil comme Postman.
Partie technique : Exemple d’ajout de code dans une configuration Node.js
Voici un exemple pour placer l’option OpenSSL dans un projet Node.js ou CLI :
// server.js
if (process.version.startsWith('v18')) {
console.log("Running Node.js with deprecated OpenSSL flags");
const { exec } = require("child_process");
exec("node --openssl-legacy-provider app.js", (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
}
Ressources utiles
- Node.js Documentation : Visiter le site officiel
- SSL/TLS Checker : Vérifiez vos certificats
- Postman Integration Tools : Lien vers Postman
Liens d’affiliation recommandés
Pour sécuriser vos connexions et éviter les erreurs SSL à l’avenir, découvrez des solutions utiles :
- NordVPN pour sécuriser vos connexions
- EaseUS OS2Go pour créer des environnements de travail portables
- Wondershare Recoverit Data Recovery pour récupérer les données nécessaires
Questions Fréquemment Posées (FAQ)
1. Que signifie l’option --openssl-legacy-provider ?
C’est une option pour activer le support d’OpenSSL 1.x, utilisée sur Node.js pour résoudre des problèmes liés au SSL/TLS.
2. Est-ce une solution pérenne ?
Non. Cette option est temporaire. Mettez régulièrement à jour vos dépendances et migrez vers des bibliothèques compatibles.
3. Puis-je éviter l’erreur sans modifier Node.js ?
Oui, si le problème est lié aux certificats, commencez par les corriger avant d’ajouter des flags spécifiques à Node.js.
4. Dois-je toujours utiliser cette commande sur chaque machine ?
Non, configurez vos scripts de projet (via package.json) pour automatiser cette inclusion.
5. L’erreur peut-elle survenir en dehors de Node.js ?
Potentiellement, si vous utilisez des certificats obsolètes ou des configurations TLS incorrectes dans tout autre environnement.
En suivant ce guide, vous serez en mesure de diagnostiquer et corriger l’erreur ERR_SSL_UNSUPPORTED_EXTENSION tout en vous assurant de maintenir un environnement sécurisé.
