ERR_SSL_PROTOCOL_ERROR nur für einige Benutzer (nodejs, express)

stimmen
2

Nur einige (nicht alle) Benutzer erhalten ERR_SSL_PROTOCOL_ERROR in Chrome, wenn sie versuchen, meine Express-Website zu besuchen. Ich erhalte diesen Fehler nicht, daher erweist er sich als schmerzhaft beim Debuggen

Ich erstelle einen https-Server unter Verwendung einer PFX-Datei, die ich von meinem Provider heruntergeladen habe (1&1):

var options = {
  pfx: fs.readFileSync('./mysite_private_key.pfx'),
  passphrase: 'MYPASSPHRASE',
};
https.createServer(options, app).listen(443); 

https://whatsmychaincert.com sagt mir, dass die Kette korrekt ist, beschwert sich aber über den Handshake:

[mysite] hat die richtige Kette.

[Mysite]: TLS-Handshake-Fehler: error:14077438:SSL-Routinen:SSL23_GET_SERVER_HELLO:tlsv1 alert interner Fehler SSL Labs kann Ihnen möglicherweise sagen, was schief gelaufen ist

Ich habe das erfolglos gegoogelt, weiß jemand, was das Problem sein könnte? Ty.

Veröffentlicht am 26/05/2020 um 13:46
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Eine mögliche Quelle für einen fehlgeschlagenen Handschlag könnte das Fehlen eines Zwischenzertifikats sein, die caOption tls.createSecureContext. Es sollte auf der Website Ihres Anbieters öffentlich zugänglich sein.

Hoffentlich hilft das.

Beantwortet am 07/06/2020 um 01:10
quelle vom benutzer

stimmen
0

heutzutage, wenn unser Server (z.B. 1&1) sicher konfiguriert ist, werden nur tls v1.2 und tls v1.3 unterstützt.

also wie Sie dies debuggen:

  • scannen Sie Ihre Site mit SSL Labs Test, um zu sehen, welche Chiffren unterstützt werden, oder sehen Sie alternativ in unserer nginx/apache-Konfiguration

  • tail -f die Server-Protokolle, insbesondere die catchall/other_vhosts-Protokolldateien, da ssl-Protokollfehler in den Site-Protokollen und dem generischen catchall-Protokoll auftreten können, wenn der Server nicht über den Namen entscheiden kann

  • versuchen Sie, das Benutzer-Chrom so zu aktualisieren, dass es mindestens tls 1.2 unterstützt

    chrom hat einige Befehlszeilenschalter, um sein Chiffrierverhalten zu ändern:

    • --ssl-version-max Gibt die maximale SSL/TLS-Version an ("tls1.2" oder "tls1.3"). ↪
    • --ssl-version-min Gibt die minimale SSL/TLS-Version an ("tls1", "tls1.1", "tls1.2" oder "tls1.3"). ↪

GEFAHRENZONE:

  • als letztes Mittel könnten Sie versuchen, in Ihrer nginx-config ( ssl_ciphersDirektive) Legacy-Chiffren wie socat ODER (allerletztes Mittel) socat23 zu akzeptieren, um zu prüfen, welche Version Ihre Kunden unterstützen,

denken Sie daran, alles unterhalb von tls v1 zu deaktivieren. 2 in Produktion umwelt

Beantwortet am 07/06/2020 um 15:57
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more