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


我在CentOS 5.9上。

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

我没有看到相关的选项 openssl 但也许我忽视了一些事情。


88
2017-10-21 20:39






答案:


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


134
2017-10-21 20:48



请记住,您将不得不使用一个版本的OpenSSL来执行TLS 1.2,这意味着CentOS 5已经完成了。 - Michael Hampton♦
在Mac OS X 10.11上不起作用 - Quanlong
Michael Hampton,只有OOB设置:[me @ server] [〜] cat / etc / redhat-release CentOS版本5.11(最终版)[me @ server] [〜] openssl版本OpenSSL 1.0.2d 2015年7月9日;) - Kevin_Kinsey
@Quanlong homebrew有openssl v1.0.2。安装它然后运行它 /usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect google.com:443 -tls1_2 - Xiao
它运作良好 brew upgrade openssl - Quanlong


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

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

72
2017-10-21 20:52



试图让这个第三方脚本工作真的很难。写了我感兴趣的人: 这里。 - Xavier Lucas
它对我很有用。 - colefner