我在 CentOS 5.9 上。
我想从 Linux shell 确定远程 Web 服务器是否专门支持 TLS 1.2(而不是 TLS 1.0)。有没有简单的方法可以检查?
我没有看到相关的选项openssl
但也许我忽略了一些东西。
答案1
您应该使用 openssl s_client,您正在寻找的选项是 -tls1_2。
示例命令如下:
openssl s_client -connect google.com:443 -tls1_2
如果您获得证书链和握手,则表明相关系统支持 TLS 1.2。如果您看不到证书链,并且看到类似于“握手错误”的内容,则表明它不支持 TLS 1.2。您还可以分别使用 -tls1 或 tls1_1 测试 TLS 1 或 TLS 1.1。
答案2
您还可以使用以下命令列出所有支持的密码:
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