Я использую CentOS 5.9.
Я хотел бы определить из оболочки Linux, поддерживает ли удаленный веб-сервер специально TLS 1.2 (в отличие от TLS 1.0). Есть ли простой способ проверить это?
Я не вижу похожего варианта на openssl
но, возможно, я что-то не замечаю.
Вы должны использовать openssl s_client, а параметр, который вы ищете, - -tls1_2.
Пример команды:
openssl s_client -connect google.com:443 -tls1_2
Если вы получили цепочку сертификатов и рукопожатие, значит, данная система поддерживает TLS 1.2. Если вы видите «Не отображается цепочка сертификатов» и что-то похожее на «ошибку рукопожатия», значит, он не поддерживает TLS 1.2. Вы также можете проверить TLS 1 или TLS 1.1 с помощью -tls1 или tls1_1 соответственно.
Также вы можете перечислить все поддерживаемые шифры, используя:
nmap --script ssl-enum-ciphers -p 443 www.example.com
А затем проверьте вывод. Если он поддерживается, вы получите что-то вроде этого:
| 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