Como posso verificar se o TLS 1.2 é suportado em um servidor Web remoto a partir do shell RHEL / CentOS?

102

Estou no CentOS 5.9.

Eu gostaria de determinar a partir do shell linux se um servidor da Web remoto suporta especificamente o TLS 1.2 (em oposição ao TLS 1.0). Existe uma maneira fácil de verificar isso?

Não estou vendo uma opção relacionada, opensslmas talvez esteja ignorando alguma coisa.

Mike B
fonte

Respostas:

161

Você deve usar o openssl s_client e a opção que procura é -tls1_2.

Um exemplo de comando seria:

openssl s_client -connect google.com:443 -tls1_2

Se você obtiver a cadeia de certificados e o handshake, sabe que o sistema em questão suporta o TLS 1.2. Se você não vir a cadeia de certificados e algo semelhante ao "erro de aperto de mão", você sabe que ele não suporta o TLS 1.2. Você também pode testar o TLS 1 ou TLS 1.1 com -tls1 ou tls1_1, respectivamente.

Jacob
fonte
8
E lembre-se de que você terá que usar uma versão do OpenSSL que faça o TLS 1.2, e isso significa que o CentOS 5 está certo.
Michael Hampton
14
Não funciona no Mac OS X 10.11
Quanlong
Michael Hampton, apenas configurações OOB: [me @ server] [~] cat / etc / redhat-release CentOS versão 5.11 (Final) [me @ server] [~] versão openssl OpenSSL 1.0.2d 9 de julho de 2015;)
Kevin_Kinsey
12
O homebrew do @Quanlong possui o openssl v1.0.2. Instale-o, em seguida, executá-lo com/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect google.com:443 -tls1_2
Xiao
6
Funciona bem depoisbrew upgrade openssl
Quanlong 28/08/2015
87

Além disso, você pode listar todas as cifras suportadas usando:

nmap --script ssl-enum-ciphers -p 443 www.example.com

E depois verifique a saída. Se for suportado, você terá algo parecido com isto:

|   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
Glueon
fonte
4
Foi muito difícil tentar fazer esse script de terceiros funcionar. Escreveu o meu para pessoas interessadas: aqui .
Xavier Lucas
2
Funcionou muito bem para mim.
colefner