[HTTPS] TLS / SSL handshake falla análisis de la escena

0.5 Antecedentes

TLS / SSL proceso de apretón de manos con referencia  al proceso de protocolo de enlace SSL ilustrado

1. Error común

1.1 SSLHandshakeException handshake_failure

1.1.1 TLS / SSL discrepancia de la versión de protocolo

Desde la versión 1.2 de TLS lanzado en 2008, el servidor de seguridad se considera por lo general sólo es compatible con la versión más altas TLS, como TLS1.2 y anteriores, si los clientes con la versión de bajo TLS / SSL apretón de manos iniciadas por el servidor, debido a que el servidor no se el fracaso de apoyo directo.

Como jdk1.6 es utilizar TLS1.0, se accede utilizando TLS1.2 servidor será de error, puede actualizar JDK1.8, por defecto 1.2

1.1.2 cifrado conjunto de cifrado suite de desajuste

Por razones de seguridad, el servidor por lo general sólo admite cifrado de alta seguridad, por lo que cuando un cliente envía último conjunto de cifrado dará lugar a relativamente baja apretón de manos negociación de seguridad fallado.

Por favor, resolver el sello específico

1.2 problemas de certificado 

1.2.1. El cliente certificado falso

La autenticación mutua, el cliente no sólo para verificar el certificado del servidor, el servidor también tiene que verificar un certificado de cliente . En el servidor verifica el certificado de cliente en el proceso, debido a que el error de comprobación de la cadena de certificado de cliente, el cual puede generar directamente Alerta Fatal, que conduce directamente a la interrupción apretón de manos.

Solución: Utilice una CA conocida a los certificados de cliente cuestión (como ACCP, etc.), y si el servidor puede ponerse en contacto con los desarrolladores directamente a su certificado de cliente se coloca en su resumen lista de confianza.

1.2.2 servidor de validación de certificados

Si el certificado de autenticación de servidor cadena de certificados última inmersión, el certificado no es de confianza lista de clientes, se informará de verificación del certificado no se pasa, esta vez es necesario añadir manualmente el certificado de servidor en la lista de certificados de confianza, o establecer un fideicomiso permanente . implementación de Java se puede lograr mediante la API SSLContext similares, específicamente Baidu ~

1.3  SSLException: recibido una alerta fatal: internal_error

1.3.1 No se puede extraer SNI conducen TLS / SSL errores de enlace

En ciertos escenarios, necesidad de adquirir el SNI campo ClientHello como una condición necesaria, tal como una capa 4 hizo NGINX caudal de la corriente para el proxy HTTPS. ClientHello cliente no lleva el SNI, dará lugar a un fracaso de la situación apretón de manos proxy.

Cuando se utiliza la corriente Nginx no proxy de reenvío, el servidor NGXIN necesita para obtener el propósito de clientes de nombres de dominio quieren acceder . Lee módulo ngx_stream_ssl_preread_module sin descifrar mensajes llegar ClientHello SNI para lograr la función normal del agente.

problemas y soluciones específicas por favor, por liebre

Publicado 110 artículos originales · 98 fue elogiado · vistas 10000 +

Supongo que te gusta

Origin blog.csdn.net/sarafina527/article/details/104814824
Recomendado
Clasificación