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:
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 ...
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.