Errore openssl / curl: SSL23_GET_SERVER_HELLO: errore interno avviso tlsv1


9

Incontriamo problemi molto strani durante la connessione con openssl o curl a uno dei nostri server, da Ubuntu 14.04

Esecuzione:

openssl s_client -connect ms.icometrix.com:443

dà:

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

Un errore simile durante l'esecuzione:

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

Uscita della versione di openssl (su client / server):

OpenSSL 1.0.1f 6 Jan 2014

Output di openssl da dpkg -l openssl:

1.0.1f-1ubuntu2

La cosa divertente è che il problema svanisce quando ci si connette con altre versioni di Openssl:

  • Da un mac, OpenSSL 0.9.8zd 8 gen 2015, tutto ok
  • Da centos, OpenSSL 1.0.1e-fips 11 feb 2013, tutto ok
  • Ultima versione stabile su Ubuntu 14.04, OpenSSL 1.0.2d 9 lug 2015, tutto ok.

Dal lato server, non vediamo nulla di strano. Il problema è iniziato quando abbiamo disabilitato SSL3 sui nostri computer.

Potrebbe esserci un problema con la build in apt-get?

Testiamo anche altre versioni, quella proposta da apt-cache showpkg, ma il problema rimane ...


Sembra che tu sia stato colpito da questo bug: bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137 . Vengono menzionate alcune soluzioni alternative. Funziona curl --sslv3 https://ms.icometrix.com?
Jos

Ciao, grazie per la risposta. No, questo non funziona, perché abbiamo disabilitato ssl sui nostri server. Inoltre, in realtà, non ci interessa curl o openssl, il vero problema per noi è che usiamo le richieste da Python, che usa questa versione di openssl. Quindi, se ti capita di avere qualche idea, grazie per avercelo fatto sapere. Scaverò ulteriormente.
cecemel,

Risposte:


4

Sembra un problema con il supporto ECDH tra client e server. Se si escludono tutte le cifre ECDH, funziona:

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

La mia ipotesi è che il server grida su alcune delle 25 curve ECC offerte dal client. I browser offrono solo poche curve. OpenSSL 0.9.8 non supporta ancora alcun ECC e RedHat / CentOS ha una storia di disabilitazione ECC di default per motivi di brevetto. Non so perché OpenSSL 1.0.2 funzioni poiché non ho accesso a questa versione.

Si noti che dare la versione OpenSSL di solito non è sufficiente perché tutte le distribuzioni mantengono versioni precedenti ma aggiungono patch di sicurezza. Invece controlla con dpkg -l opensslquale dà 1.0.1f-1ubuntu2.15 sul mio sistema.


grazie ha fatto il trucco! Ho aggiornato il post con l'output di dpkg -l
cecemel il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.