ERR_SSL_PROTOCOL_ERROR sólo para algunos usuarios (nodejs, express)

votos
2

Sólo algunos (no todos) usuarios reciben ERR_SSL_PROTOCOL_ERROR en Chrome cuando intentan visitar mi sitio express. No estoy recibiendo este error, así que está resultando un dolor para depurar

Estoy creando un servidor https usando un archivo PFX que descargué de mi proveedor (1&1):

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

https://whatsmychaincert.com me dice que la cadena es correcta pero se queja del apretón de manos:

[mi sitio] tiene la cadena correcta.

[mi sitio]: Error de apretón de manos TLS: error:14077438:Rutinas SSL:SSL23_GET_SERVER_HELLO:alerta tlsv1 error interno Los laboratorios de SSL podrían decirte lo que salió mal

He buscado esto en Google sin éxito, ¿alguien sabe cuál podría ser el problema? Ty.

Publicado el 26/05/2020 a las 13:46
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

Una posible fuente de fallas en el apretón de manos podría ser la falta de un certificado intermedio, caopción de tls.createSecureContext. Debería ser público en el sitio web de su proveedor.

Espero que esto ayude.

Respondida el 07/06/2020 a las 01:10
fuente por usuario

votos
0

hoy en día, cuando nuestro servidor (por ejemplo, 1&1) está configurado de forma segura, sólo tls v1.2 y tls v1.3 están soportados...

así que cómo depurar esto:

  • escanee su sitio con SSL Labs. Pruebe también para ver qué cifrados son compatibles, o alternativamente vea en nuestra configuración de nginx/apache

  • tail -f los registros del servidor, especialmente los archivos de registro de catchall/otros_vhosts, ya que los errores del protocolo ssl pueden estar en los registros del sitio y en el registro de catchall genérico cuando el servidor no puede decidir el nombre

  • tratar de actualizar el cromo de los usuarios para que soporten al menos tls 1.2

    el cromo tiene algunos interruptores de línea de comando para cambiar su comportamiento de cifrado:

    • --ssl-version-max Especifica la versión máxima de SSL/TLS ("tls1.2" o "tls1.3"). ↪
    • --ssl-version-min Especifica la versión mínima de SSL/TLS ("tls1", "tls1.1", "tls1.2" o "tls1.3"). ↪

ZONA DE PELIGRO:

  • como último recurso podrías intentar aceptar los códigos heredados en tu nginx-config ( ssl_ciphersdirectiva) como socat OR (muy último recurso) socat23 para comprobar qué versión soportan tus clientes,

recuerde desactivar todo lo que esté por debajo de tls v1. 2 en producción medio ambiente

Respondida el 07/06/2020 a las 15:57
fuente por usuario

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