Je suis sur CentOS 5.9.
Je voudrais déterminer à partir du shell Linux si un serveur Web distant prend spécifiquement en charge TLS 1.2 (par opposition à TLS 1.0). Existe-t-il un moyen simple de vérifier cela?
Je ne vois pas d'option connexe sur openssl
mais peut-être que j'oublie quelque chose.
Vous devez utiliser openssl s_client, et l'option que vous recherchez est -tls1_2.
Un exemple de commande serait:
openssl s_client -connect google.com:443 -tls1_2
Si vous obtenez la chaîne de certificats et la prise de contact, vous savez que le système en question prend en charge TLS 1.2. Si vous voyez ne voyez pas la chaîne de certificats, et quelque chose de similaire à "erreur de prise de contact", vous savez qu'il ne prend pas en charge TLS 1.2. Vous pouvez également tester TLS 1 ou TLS 1.1 avec respectivement -tls1 ou tls1_1.
Vous pouvez également répertorier tous les chiffrements pris en charge en utilisant:
nmap --script ssl-enum-ciphers -p 443 www.example.com
Et puis vérifiez la sortie. S'il est pris en charge, vous obtiendrez quelque chose comme ceci:
| 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