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

9

Nous rencontrons des problèmes très étranges lors de la connexion avec openssl ou curl à l'un de nos serveurs, depuis Ubuntu 14.04

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 plus drôle, c'est que le problème disparaît lors de la connexion avec d'autres versions d'OpenSL:

  • Depuis un Mac, OpenSSL 0.9.8zd 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 va bien.

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

Pourrait-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 demeure ...

cecemel
la source
Il semble que vous ayez été touché par ce bogue: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 . Certaines solutions de contournement sont mentionnées. Ça curl --sslv3 https://ms.icometrix.commarche?
Jos
Salut, merci pour la réponse. Non, cela ne fonctionne pas, car nous avons désactivé SSL sur nos serveurs. De plus, en réalité, nous ne nous soucions pas de curl ou openssl, le vrai problème pour nous est que nous utilisons les requêtes de python, qui utilise cette version d'openssl. Donc, si vous avez des idées, merci de nous en informer. Je vais creuser plus loin.
cecemel

Réponses:

4

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

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

Je suppose que le serveur coasse sur certaines des 25 courbes ECC proposées par le client. Les navigateurs n'offrent que peu de courbes. OpenSSL 0.9.8 ne supporte pas encore d'ECC et RedHat / CentOS a un historique de désactivation d'ECC par défaut pour des raisons de brevets. Je ne sais pas pourquoi OpenSSL 1.0.2 fonctionne car je n'ai pas accès à cette version.

Veuillez noter que donner la version OpenSSL n'est généralement pas suffisant car toutes les distributions conservent des versions plus anciennes mais ajoutent des correctifs de sécurité. Vérifiez plutôt avec dpkg -l opensslqui donne 1.0.1f-1ubuntu2.15 sur mon système.

Steffen Ullrich
la source
thx il a fait l'affaire! J'ai mis à jour le message avec la sortie de dpkg -l
cecemel