¿Cómo puedo verificar si TLS 1.2 es compatible con un servidor web remoto desde el shell RHEL / CentOS?

102

Estoy en CentOS 5.9.

Me gustaría determinar desde el shell de Linux si un servidor web remoto admite específicamente TLS 1.2 (a diferencia de TLS 1.0). ¿Hay una manera fácil de verificar eso?

No veo una opción relacionada opensslpero quizás estoy pasando por alto algo.

Mike B
fuente

Respuestas:

161

Debe usar openssl s_client, y la opción que está buscando es -tls1_2.

Un comando de ejemplo sería:

openssl s_client -connect google.com:443 -tls1_2

Si obtiene la cadena de certificados y el apretón de manos, sabe que el sistema en cuestión es compatible con TLS 1.2. Si ve que no ve la cadena de certificados y algo similar al "error de protocolo de enlace", sabe que no es compatible con TLS 1.2. También puede probar TLS 1 o TLS 1.1 con -tls1 o tls1_1 respectivamente.

Jacob
fuente
8
Y tenga en cuenta que tendrá que usar una versión de OpenSSL que haga TLS 1.2, y eso significa que CentOS 5 está listo.
Michael Hampton
14
No funciona en Mac OS X 10.11
Quanlong
Michael Hampton, solo configuraciones OOB: [me @ server] [~] cat / etc / redhat-release CentOS versión 5.11 (Final) [me @ server] [~] versión openssl OpenSSL 1.0.2d 9 de julio de 2015;)
Kevin_Kinsey
12
@Quanlong homebrew tiene openssl v1.0.2. Instálelo y luego ejecútelo/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect google.com:443 -tls1_2
Xiao
66
Funciona bien despuésbrew upgrade openssl
Quanlong
87

También puede enumerar todos los cifrados compatibles con:

nmap --script ssl-enum-ciphers -p 443 www.example.com

Y luego verifique la salida. Si es compatible, obtendrá algo como esto:

|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_RC4_128_MD5 - strong
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     compressors: 
|       NULL
Glueon
fuente
44
Me costó mucho tratar de hacer que este script de terceros funcione. Escribió el mío para las personas interesadas: aquí .
Xavier Lucas
2
Funciono muy bien para mi.
colefner