Thread Fehler bei SSL Verbindung
(13 answers)
Opened by Rolf Schaufelberger at 2017-03-20 08:50
Hallo,
ich bekomme beim Zugriff auf eine REST Interface die folgende Fehlermeldung: DEBUG: .../IO/Socket/SSL.pm:2805: new ctx 169563920 DEBUG: .../IO/Socket/SSL.pm:659: socket not yet connected DEBUG: .../IO/Socket/SSL.pm:661: socket connected DEBUG: .../IO/Socket/SSL.pm:684: ssl handshake not started DEBUG: .../IO/Socket/SSL.pm:726: not using SNI because openssl is too old DEBUG: .../IO/Socket/SSL.pm:773: set socket to non-blocking to enforce timeout=180 DEBUG: .../IO/Socket/SSL.pm:786: call Net::SSLeay::connect DEBUG: .../IO/Socket/SSL.pm:789: done Net::SSLeay::connect -> -1 DEBUG: .../IO/Socket/SSL.pm:799: ssl handshake in progress DEBUG: .../IO/Socket/SSL.pm:809: waiting for fd to become ready: SSL wants a read first DEBUG: .../IO/Socket/SSL.pm:829: socket ready, retrying connect DEBUG: .../IO/Socket/SSL.pm:786: call Net::SSLeay::connect DEBUG: .../IO/Socket/SSL.pm:789: done Net::SSLeay::connect -> -1 DEBUG: .../IO/Socket/SSL.pm:792: SSL connect attempt failed DEBUG: .../IO/Socket/SSL.pm:792: local error: SSL connect attempt failed error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error DEBUG: .../IO/Socket/SSL.pm:795: fatal SSL error: SSL connect attempt failed error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error DEBUG: ...14.2/Net/HTTPS.pm:69: ignoring less severe local error 'IO::Socket::IP configuration failed', keep 'SSL connect attempt failed error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error' DEBUG: .../IO/Socket/SSL.pm:2827: free ctx 169563920 open=169563920 DEBUG: .../IO/Socket/SSL.pm:2838: OK free ctx 169563920 Die Umgebung ist: $ openssl version OpenSSL 0.9.8k 25 Mar 2009 (Leider lässt sich das nicht aktualisieren!) $perl -MLWP::Protocol::https -E 'say "$LWP::Protocol::https::VERSION"' 6.07 $ perl -MIO::Socket::SSL -E' say "$IO::Socket::SSL::VERSION"' 2.047 $ perl -MNet::SSLeay -E 'say "$Net::SSLeay::VERSION"' 1.80 Das Skript lässt sich reduzieren auf: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 use LWP::UserAgent; use HTTP::Request; my $json= '{" ..."}'; my $uri = "https://someurl/"; my $req = HTTP::Request->new( 'POST', $uri ); $req->header( 'Content-Type' => 'application/json' ); $req->header( 'Authorization' => 'bla bla' ); $req->content( $json ); my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 }); $ua->request($req); Der Server verwendet folgendes Verfahren: The connection to this site is encrypted and authenticated using a strong protocol (TLS 1.2), a strong key exchange (ECDHE_RSA with P-256), and a strong cipher (AES_128_GCM). Der sinngemäß gleiche Request mit curl funktioniert, ebenso funktioniert der Request mit openssl 1.0.1f von einem anderen Server aus und er funktioniert auch zu einem anderen Server, der das folgende Verfahren verwendet: The connection to this site uses an obsolete protocol (TLS 1.0), an obsolete key exchange (RSA), and an obsolete cipher (AES_128_CBC with HMAC-SHA1). Es muss also damit zu tun haben, die Frage ist nur, was genau und wie kann ich das beeinflussen? Rolf Schaufelberger modedit Editiert von GwenDragon: Formatiert Last edited: 2017-03-20 09:34:58 +0100 (CET) |