Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4305
| From | Stefan Mayer <meniskus@gmx.net> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: php/curl Verbindungsproblem |
| Date | 2017-11-06 20:41 +0100 |
| Message-ID | <1924607834.20171106204146@gmx.net> (permalink) |
| References | <74707732.20171105134853@gmx.net> <otn1v7$o90$1@solani.org> |
Christoph M. Becker am Sonntag, 5. November 2017 (13:59):
> Am 05.11.2017 um 13:48 schrieb Stefan Mayer:
>> In der offiziellen Dokumentation gibt es folgenden Aufruf:
>>
>> curl -vs \
>> -u user:pass \
>> -x https://api.test.sandbox.mobile.de:8080 \
>> -H "Accept: application/vnd.de.mobile.api+json" \
>> https://services.mobile.de/seller-api/sellers
>>
>> Das Testscript sollte dem Aufruf entsprechen.
>>
>> <?php
>> $ch = curl_init();
>> curl_setopt($ch, CURLOPT_VERBOSE, true);
>> curl_setopt($ch, CURLOPT_URL,
>> 'https://service.mobile.de/seller-api'
>> );
> Hm, die URI stimmt nicht überein. Tippfehler nur in diesem Thread, oder
> im Script?
Der URI und die Angabe zu den HTTP-Kopfzeilen stimmen nicht.
Richtig ist: https://services.mobile.de/seller-api/[sellers]
^
Ebenso die Notierung der HTTP Kopfzeilen.
Falsch: ['Accept' => 'application/vnd.de.mobile.api+json']
Richtig: ['Accept: application/vnd.de.mobile.api+json']
Wie auch immer, beides kommt erst zu tragen, _wenn_ eine Verbindung steht.
# Das System auf dem der Client laufen soll ist Webspace bei Hetzner.
curl --version (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1t libssh2/1.4.3
Per curl oder (korrektem) script endet beides in:
Failed to connect to api.test.sandbox.mobile.de port 8080: Connection refused
$ openssl s_client -connect api.test.sandbox.mobile.de:8080 -ssl3
$ openssl s_client -connect api.test.sandbox.mobile.de:8080 -tls1_2
socket: Connection refused
connect:errno=111
Keine weitere Ausgabe.
Zum Vergleich:
$ openssl s_client -connect google.com:443 -tls1_2
Secure Renegotiation IS supported
$ openssl s_client -connect google.com:443 -ssl3
140365874095760:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:348:
Secure Renegotiation IS NOT supported
Zur Fehlermeldung war das https://access.redhat.com/solutions/56428 für mich am
Aussagekräfigsten.
TLS 1.2 wird unterstützt SSLv3 nicht. Der Sandkasten (proxy) von mobile
unterstützt beides nicht? Wieso wirft google den Fehler, die Sandbox aber nicht?
# Ein Testsystem in der lokalen VM, schon älter.
curl --version (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1t libssh2/1.4.3
Die curl/openssl Versionen sind gleich wie bei Hetzner?
$ openssl s_client -connect api.test.sandbox.mobile.de:8080 -ssl3
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:348:
Secure Renegotiation IS NOT supported
$ openssl s_client -connect api.test.sandbox.mobile.de:8080 -tls1_2
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:348:
Secure Renegotiation IS NOT supported
Allerdings, der direkte Aufruf per curl oder script verbindet wie folgt.
$ curl -vs ...
* Establish HTTP proxy tunnel to services.mobile.de:443
> CONNECT services.mobile.de:443 HTTP/1.1
< HTTP/1.1 200 Connection established
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / AES256-SHA
* Server certificate:
* issuer: C=US; O=Symantec Corporation; OU=Symantec Trust Network; CN=Symantec Class 3 EV SSL CA - G3
"SSLv3" Handschlag vs. "connection using TLSv1.2"?
Welches Protokoll ist den nun für die Verbindung in ausgehandelt?
Also mein Testsystem akzeptiert SSLv3? Mit welchen Argumenten ruft curl dann openssl
auf, bzw. tut es das überhaupt?
# Es gibt noch ein Ubuntu
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Dieses curl benutzt nicht OpenSSL. PHP gibt's da nicht, aber der curl Aufruf verbindet.
* Proxy replied OK to CONNECT request
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 596 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / RSA_AES_256_CBC_SHA1
Im Gegensatz zum Testsystem sieht die Protokollierung anders aus, es gibt kein
Angaben zum Handshake und Kein "Server hello". Aber wieder "SSL connection using
TLS1.2".
# Ich arbeite auf Windows und per MinGW Umgebung:
curl 7.55.1 (x86_64-pc-msys) libcurl/7.55.1 OpenSSL/1.0.2l libssh2/1.8.0
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
https://stackoverflow.com/questions/15166950/unable-to-establish-ssl-connection-how-do-i-fix-my-ssl-cert#answer-15168180
OK. Es wird versucht mit TLS 1.2 zu verbinden, aber der Server sendet kein
"Server hello" Kann der jetzt TLS 1.2 oder nicht?
Die alles entscheidende Frage lautet: Wieso verbindet der Server bei Hetzner
nicht? Meine Vermutung: Es ist das Fehlen der SSLv3 Unterstützung bei Hetzner.
Mein Testumgebung, weil nicht so gut gepflegt, akzeptiert das. MinGW ist neuer
und unterstützt ebenfalls kein SSLv3.
Nur, was hat dann "SSL connection using TLSv1.2" zu bedeuten?
Was hat der SSLv3 Handshake mit anschließendem "using TLSv1.2" zu bedeuten?
Wie bekomme ich raus, welches Protokoll den nun verlangt, bzw. welches Angeboten wird.
Wie bekomme ich raus welche Protokolle von meinen Rechnern akzeptiert werden.
Welche Komponente ist den jetzt letztlich dafür zuständig?
[...]
Wie ich es geschrieben habe, mir fehlt das grundsätzliche Verständnis, um die
Beobachtungen zu überhaupt zu deuten. Was zur Folge hat, dass ich nicht weiß
welche Informationen ich überhaupt, womit und wo suchen sollte um mir den
Sachverhalt zu erschließen.
Ich muss mich wohl damit zufrieden geben, dass meine Vermutung zur Ursache
vielleicht richtig ist und die Produktiv-Umgebung bei mobile.de wahrscheinlich
schon "funktionieren" wird.
Schönen Tag noch.
ciao, Stefan
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
php/curl Verbindungsproblem Stefan Mayer <meniskus@gmx.net> - 2017-11-05 13:48 +0100
Re: php/curl Verbindungsproblem "Christoph M. Becker" <cmbecker69@arcor.de> - 2017-11-05 13:59 +0100
Re: php/curl Verbindungsproblem Stefan Mayer <meniskus@gmx.net> - 2017-11-06 20:41 +0100
Re: php/curl Verbindungsproblem Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-07 17:54 +0100
Re: php/curl Verbindungsproblem Stefan Mayer <meniskus@gmx.net> - 2017-11-10 00:27 +0100
Re: php/curl Verbindungsproblem Tom <weiksch@gmail.com> - 2018-10-06 08:26 -0700
Re: php/curl Verbindungsproblem Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-05 20:26 +0100
csiph-web