Ich verwende das Knotenanforderungsmodul , sende regelmäßig GET-Anforderungen an eine Reihe von URLs und erhalte manchmal auf einigen Websites den folgenden Fehler.
Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683
Das Problem ist, dass ich diesen Fehler nicht immer oder immer bei einigen URLs bekomme, nur manchmal. Außerdem kann es mit " strictSSL: false
" nicht ignoriert werden .
Ich habe gelesen, dass dies damit zusammenhängen kann, dass ich SSL-Anforderungen mit dem falschen Protokoll (SSLv2, SSLv3, TLS ..) sende. Dies erklärt jedoch nicht, warum dies unregelmäßig geschieht.
Übrigens führe ich nodejs auf einem Win 2008-Server aus.
Jede Hilfe wird geschätzt.
javascript
node.js
ssl
request
umutm
quelle
quelle
Antworten:
Sie erhalten eine solche Fehlermeldung, wenn Sie eine HTTPS-Ressource über einen falschen Port anfordern, z. B. 80. Stellen Sie daher sicher, dass Sie in den Anforderungsoptionen den richtigen Port 443 angegeben haben.
quelle
Das war total mein schlechtes.
Ich habe den Standardknoten http.request für einen Teil des Codes verwendet, der Anforderungen nur an http-Adressen senden soll. Anscheinend hatte die Datenbank eine einzelne https-Adresse, die mit einem zufälligen Intervall abgefragt wurde.
Ich habe einfach versucht, eine http-Anfrage an https zu senden.
quelle
Ich habe diesen Fehler erhalten, weil ich dort verwendet habe,
require('https')
wo ich hätte verwenden sollenrequire('http')
.quelle
Einige der Sites sprechen SSLv2 oder senden zumindest einen SSLv2-Server - Hallo, und Ihr Client spricht kein SSLv2 oder ist nicht für das Sprechen konfiguriert. Hier müssen Sie eine politische Entscheidung treffen. SSLv2 sollte vor Jahren vom Erdboden verschwunden sein, und Standorte, die es noch verwenden, sind unsicher. Wenn Sie jedoch mit ihnen sprechen müssen, müssen Sie es nur an Ihrem Ende aktivieren, wenn Sie können. Ich würde mich jedoch bei den Eigentümern der Website beschweren, wenn Sie können.
quelle
Ich hatte dieses Problem (403 Fehler für jedes Paket) und fand im Internet nichts Großartiges, um es zu lösen. Meine
.npmrc
Datei in meinem Benutzerordner war falsch und wurde missverstanden. Ich habe diese npmrc-Zeile von geändertproxy=http://XX.XX.XXX.XXX:XXX/
zu:
quelle
var https = require('https'); https.globalAgent.options.secureProtocol = 'SSLv3_method';
quelle
Ich habe diesen Fehler beim Herstellen einer Verbindung zu Amazon RDS erhalten. Ich habe den Serverstatus zu 50% der CPU-Auslastung überprüft, als es sich um einen Entwicklungsserver handelte und niemand ihn verwendet.
Es hat vorher funktioniert und nichts in der Verbindungskonfiguration hat sich geändert. Ein Neustart des Servers hat das Problem für mich behoben.
quelle
Kurz gesagt,
vi ~/.proxy_info export http_proxy=<username>:<password>@<proxy>:8080 export https_proxy=<username>:<password>@<proxy>:8080 source ~/.proxy_info
Hoffe das hilft jemandem in Eile :)
quelle
In meinem Fall (die Website SSL verwendet ev-Kurven) wurde das Problem mit dem SSL durch Hinzufügen dieser Option ecdhCurve behoben: 'P-521: P-384: P-256'
request({ url, agentOptions: { ecdhCurve: 'P-521:P-384:P-256', } }, (err,res,body) => { ...
JFYI, vielleicht hilft das jemandem
quelle
Ich habe diesen Fehler erhalten, als ich ihn auf meinem Rocketchat verwendet habe, um mit meinem Gitlab über einen Enterprise-Proxy zu kommunizieren.
Weil das https: //: 8080 verwendet wurde, aber tatsächlich funktionierte es für http: //: 8080
quelle