wake-up-neo.com

如何从RHEL / CentOS Shell验证远程Web服务器上是否支持TLS 1.2?

我使用的是CentOS 5.9。

我想从linux Shell中确定远程Web服务器是否特别支持TLS 1.2(而不是TLS 1.0)。有没有简单的方法来检查?

我没有在openssl上看到相关选项,但也许我忽略了某些内容。

108
Mike B

您应该使用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。

171
Jacob

您还可以使用以下命令列出所有受支持的密码:

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
96
Glueon