Question Comment vérifier si TLS 1.2 est pris en charge sur un serveur Web distant à partir du shell RHEL / CentOS?


Je suis sur CentOS 5.9.

Je voudrais déterminer à partir du shell Linux si un serveur Web distant prend spécifiquement en charge TLS 1.2 (par opposition à TLS 1.0). Y at-il un moyen facile de vérifier pour cela?

Je ne vois pas d'option connexe sur openssl mais peut-être que je néglige quelque chose.


88
2017-10-21 20:39


origine




Réponses:


Vous devez utiliser openssl s_client, et l'option que vous recherchez est -tls1_2.

Un exemple de commande serait:

openssl s_client -connect google.com:443 -tls1_2

Si vous obtenez la chaîne de certificats et la poignée de main, vous savez que le système en question prend en charge TLS 1.2. Si vous voyez ne pas voir la chaîne de certificats, et quelque chose de similaire à "erreur de négociation", vous savez que cela ne prend pas en charge TLS 1.2. Vous pouvez également tester TLS 1 ou TLS 1.1 avec -tls1 ou tls1_1 respectivement.


134
2017-10-21 20:48



Et gardez à l'esprit que vous devrez utiliser une version d'OpenSSL prenant en charge TLS 1.2, ce qui signifie que CentOS 5 est bien sorti. - Michael Hampton♦
Ne fonctionne pas sur Mac OS X 10.11 - Quanlong
Michael Hampton, uniquement les configurations OOB: [me @ server] [~] cat / etc / redhat-release CentOS version 5.11 (Final) [me @ server] [~] version openssl OpenSSL 1.0.2d 9 juil 2015;) - Kevin_Kinsey
@Quanlong homebrew a openssl v1.0.2. Installez-le puis lancez-le avec /usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect google.com:443 -tls1_2 - Xiao
Ça marche bien après brew upgrade openssl - Quanlong


Vous pouvez aussi lister tous les chiffrements supportés en utilisant:

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

Et puis vérifiez la sortie. Si cela est supporté, vous obtiendrez quelque chose comme ceci:

|   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



Vous avez vraiment du mal à faire fonctionner ce script tiers. A écrit le mien pour les personnes intéressées: ici. - Xavier Lucas
Cela a très bien fonctionné pour moi. - colefner