web-dev-qa-db-fra.com

erreur openssl / curl: SSL23_GET_SERVER_HELLO: erreur interne d'alerte tlsv1

Nous rencontrons des problèmes très étranges de connexion avec openssl ou curl à l’un de nos serveurs, à partir d’Ubuntu 14.04

En cours d'exécution:

openssl s_client -connect ms.icometrix.com:443

donne:

CONNECTED(00000003)
140557262718624:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error:s23_clnt.c:770:

Une erreur similaire lors de l'exécution:

curl https://ms.icometrix.com
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error

Sortie de la version openssl (sur client/serveur):

OpenSSL 1.0.1f 6 Jan 2014

Sortie de openssl à partir de dpkg -l openssl:

1.0.1f-1ubuntu2

Le problème est que le problème disparaît lorsque vous vous connectez à d'autres versions d'OpenSL:

  • D'un mac, OpenSSL 0.9.8zd le 8 janvier 2015, tout va bien
  • De centos, OpenSSL 1.0.1e-fips 11 février 2013, tout va bien
  • Dernière version stable sur Ubuntu 14.04, OpenSSL 1.0.2d 9 juillet 2015, tout est ok.

Du côté du serveur, nous ne voyons rien d’étrange. Le problème a commencé lorsque nous avons désactivé SSL3 sur nos machines.

Peut-il y avoir un problème avec la construction dans apt-get?

Nous testons également d'autres versions, celle proposée par apt-cache showpkg, mais le problème persiste ...

8
cecemel

Cela ressemble à un problème de prise en charge ECDH entre client et serveur. Si vous excluez tous les chiffrements ECDH, cela fonctionne:

openssl s_client -connect ms.icometrix.com:443 -cipher 'DEFAULT:!ECDH'

Je suppose que le serveur crisse sur certaines des 25 courbes ECC proposées par le client. Les navigateurs n'offrent que quelques courbes. OpenSSL 0.9.8 ne prend encore en charge aucun ECC et RedHat/CentOS a l'habitude de désactiver ECC par défaut pour des raisons de brevet. Je ne sais pas pourquoi OpenSSL 1.0.2 fonctionne car je n'ai pas accès à cette version.

Notez que donner la version d'OpenSSL n'est généralement pas suffisant car toutes les distributions conservent les anciennes versions mais ajoutent des correctifs de sécurité. Au lieu de cela, vérifiez avec dpkg -l openssl qui donne 1.0.1f-1ubuntu2.15 sur mon système.

4
Steffen Ullrich