J'utilise le module node-request , j'envoie régulièrement des requêtes GET à un ensemble d'URL et, parfois, j'obtiens l'erreur ci-dessous sur certains sites.
Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683
Le problème est que je ne reçois pas toujours cette erreur ou toujours sur certaines URL, parfois seulement. De plus, il ne peut pas être ignoré avec "strictSSL: false
".
J'ai lu que cela peut être lié à l'envoi de requêtes SSL avec le mauvais protocole (SSLv2, SSLv3, TLS ..). Mais cela n'explique pas pourquoi cela se produit de manière irrégulière.
Btw, je suis en train de lancer nodejs sur un serveur Windows 2008.
Toute aide est appréciée.
C'était totalement mon mauvais.
J'utilisais le noeud standard http.request sur une partie du code qui devrait envoyer des requêtes à des adresses http uniquement. On dirait que la base de données a une seule adresse https qui a été interrogée avec un intervalle aléatoire.
J'essayais simplement d'envoyer une demande http à https.
Vous obtiendrez ce message d'erreur lorsque vous demanderez une ressource HTTPS via un port incorrect, tel que 80. Assurez-vous donc que vous avez spécifié le port correct, 443, dans les options de demande.
Certains sites parlent SSLv2, ou au moins envoient un bonjour serveur SSLv2, et votre client ne parle pas ou n'est pas configuré pour parler, SSLv2. Vous devez prendre une décision politique ici. SSLv2 aurait dû disparaître de la surface de la Terre il y a des années et les sites qui l'utilisent encore ne sont pas sûrs. Cependant, si vous devez leur parler, il vous suffit de l'activer de votre côté, si vous le pouvez. Je me plaindrais aux propriétaires du site si si vous le pouvez.
J'ai eu ce problème (erreur 403 pour chaque paquet) et je n'ai rien trouvé de génial sur Internet pour le résoudre . Mon fichier .npmrc
dans mon dossier utilisateur était incorrect et mal compris. J'ai changé cette ligne npmrc de
proxy=http://XX.XX.XXX.XXX:XXX/
à :
proxy = XX.XX.XXX.XXX:XXXX
J'ai eu cette erreur parce que j'utilisais require('https')
alors que j'aurais dû utiliser require('http')
.
var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';
dans mon cas (le site Web utilise les courbes ev) le problème avec SSL a été résolu en ajoutant cette option ecdhCurve: 'P-521: P-384: P-256'
request({ url,
agentOptions: { ecdhCurve: 'P-521:P-384:P-256', }
}, (err,res,body) => {
...
JFYI, peut-être que cela aidera quelqu'un
J'ai eu cette erreur lors de la connexion à Amazon RDS. J'ai vérifié l'état du serveur avec 50% d'utilisation du processeur alors qu'il s'agissait d'un serveur de développement et que personne ne l'utilise.
Cela fonctionnait auparavant et rien dans la configuration de la connexion n'a changé .. Le redémarrage du serveur a résolu le problème pour moi.
J'ai eu cette erreur, alors que je l'utilisais sur mon Rocket Chat pour communiquer avec mon gitlab via un proxy d'entreprise,
Parce que, utilisait le https: //: 8080 mais en réalité, cela fonctionnait pour http: //: 8080
En bref,
vi ~/.proxy_info
export http_proxy=<username>:<password>@<proxy>:8080
export https_proxy=<username>:<password>@<proxy>:8080
source ~/.proxy_info
J'espère que cela aide quelqu'un pressé :)