
 Μόνο μερικοί (όχι όλοι) χρήστες λαμβάνουν ERR\_SSL\_PROTOCOL\_ERROR στο Chrome όταν επιχειρούν να επισκεφθούν τον ιστότοπό μου express. Δεν λαμβάνω αυτό το σφάλμα, οπότε αποδεικνύεται ένας πόνος για εντοπισμό σφαλμάτων. 

 Δημιουργώ έναν διακομιστή https χρησιμοποιώντας ένα αρχείο PFX που έλαβα από τον πάροχό μου (1 & 1): 


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

```
 [Το https://whatsmychaincert.com](https://whatsmychaincert.com) μου λέει ότι η αλυσίδα είναι σωστή αλλά παραπονιέται για τη χειραψία: 


>  Το [mysite] έχει τη σωστή αλυσίδα. 
> 
>  [mysite]: Σφάλμα χειραψίας TLS: σφάλμα: 14077438: ρουτίνες SSL: SSL23\_GET\_SERVER\_HELLO: Εσωτερικό σφάλμα ειδοποίησης tlsv1 Τα εργαστήρια SSL ενδέχεται να μπορούν να σας πουν τι πήγε στραβά 
> 
> 

 Το έχω κάνει χωρίς επιτυχία, κάποιος ξέρει ποιο θα μπορούσε να είναι το πρόβλημα; Τυ. 

 
ERR\_SSL\_PROTOCOL\_ERROR μόνο για ορισμένους χρήστες (nodejs, express)
=======================================================================



 Μια πιθανή πηγή αποτυχημένης χειραψίας θα μπορούσε να είναι η έλλειψη ενδιάμεσου πιστοποιητικού, `ca` επιλογή του [`tls.createSecureContext`](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options) . Θα πρέπει από το κοινό στον ιστότοπο του παρόχου σας. 

 Ελπίζω να σας βοηθήσει. 

 

 στις μέρες μας, όταν ο διακομιστής μας (π.χ. 1 & 1) έχει διαμορφωθεί με ασφάλεια, υποστηρίζονται μόνο tls v1.2 και tls v1.3 .. 

 πώς μπορείτε να το εντοπίσετε: 

* **σαρώστε** τον ιστότοπό σας με [SSL Labs Test](https://www.ssllabs.com/ssltest/) επίσης για να δείτε ποιες κρυπτογραφητές υποστηρίζονται ή εναλλακτικά δείτε στη διαμόρφωση nginx / apache
* `tail -f` τα αρχεία καταγραφής διακομιστή, ειδικά τα αρχεία καταγραφής catchall / other\_vhosts, καθώς τα σφάλματα πρωτοκόλλου ssl ενδέχεται να υπάρχουν στα αρχεία καταγραφής ιστότοπου και το γενικό αρχείο καταγραφής catchall όταν ο διακομιστής δεν μπορεί να αποφασίσει για το όνομα
* προσπαθήστε να **ενημερώσετε** το Chrome για να υποστηρίξετε τουλάχιστον tls 1.2 

 Το chrome έχει μερικούς διακόπτες γραμμής εντολών για να αλλάξει τη συμπεριφορά κρυπτογράφησης:
* + `--ssl-version-max` Καθορίζει τη μέγιστη έκδοση SSL / TLS ("tls1.2" ή "tls1.3"). ↪
* + `--ssl-version-min` Καθορίζει την ελάχιστη έκδοση SSL / TLS ("tls1", "tls1.1", "tls1.2" ή "tls1.3"). ↪

 ΕΠΙΚΙΝΔΥΝΗ ΖΩΝΗ:
-----------------

* ως έσχατη λύση θα μπορούσατε να δοκιμάσετε να αποδεχτείτε κρυπτογραφητές παλαιού τύπου στο nginx-config ( `ssl_ciphers` οδηγία) όπως το socat OR (τελευταία λύση) [socat23](https://github.com/leonjza/socat23) για να ελέγξετε ποια έκδοση υποστηρίζουν οι πελάτες σας,

 θυμηθείτε να απενεργοποιήσετε τα πάντα κάτω από το tls v1.2 σε περιβάλλον παραγωγής
------------------------------------------------------------------------------------

 