Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > SOAP und HTTPS
Antwort
 
Themen-Optionen
Alt 27.02.2008, 14:54   Nach oben    #1
Neuer Benutzer
 
Registriert seit: 27.02.2008
Beiträge: 2
Standard SOAP und HTTPS

Hallo,
ich versuche mit mit einem PHP-SOAP-Client einen HTTPS-Webservice (https://xxxxxxx?wsdl) aufzurufen. Ich schaffs aber nicht.


Ich habe verschiedene Varianten versucht:

1. Ganz gewöhnlicher Aufruf:
$client = new SoapClient("https://xxxxxxx?wsdl");

-> SoapClient schimpft: " SSL operation failed with code 1. OpenSSL Error messages:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol, Failed to enable crypto, Could not connect to host"


2. Mit Mitgabe des Server-Zertifikates:
$client = new SoapClient("https://xxxxxxx?wsdl", array("local_cert"=>"cert_key.pem"));

-> SoapClient schimpft: "Unable to set local cert chain file `cert_key.pem`; Check that your cafile/capath settings include details of your certificate and its issuer"


Wenn ich probehalber die URL des Webservice (https://xxxxxxx?wsdl) direkt in den Browser eingebe, werde ich gefragt, ob ich das Server-Zertifikat akzeptiere. Wenn ich das bestätige, erhalte ich das Ergebnis.

Wie bringe ich meinen SOAP-Client dazu, dieses Server-Zertifikat (automatisch) zu akzeptieren?
Ist mit "local_cert" überhaupt das Server-Zertifikat gemeint oder ein anderes? Und in welchem Format?

Danke,
Oliver
raol ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2008, 16:06   Nach oben    #2
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.184
Standard

Also, das Zertifikat des Servers ist dann, wenn man es im Browser erst akzeptieren muss ein entweder selbst-signiertes Zertifikat oder auch von einer nicht vom Browser unterstützten CA signiertes Zertifikat, damit haben sehr viele Programme und Libs ihre Probleme und blocken das aus Sicherheitsgründen erstmal.
In dem Fall musst du dann ein wie du es schon selbst gemacht hast das Zertifikat mitgeben. Vielleicht steht in deinem das falsche drin ?

Hier gibts nen Kommentar in dem Beschrieben wurde was er reingepackt hat:

http://de.php.net/manual/en/ref.soap.php#71306

Ich denke es wird nicht nur der Key gebraucht sondern anscheinend Cert + Key

Da deins ja anscheinend kein Passwort benutzt, den Passwort-Teil halt einfach ignorieren.

ansonsten falls deine Datei die du nutzt okay ist, kannst du damit http://public.robo47.net/ssl-zertifikat-info.php schauen ob das Zertifikat von der https-Url vielleicht auch einfach einige Daten nicht enthält.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2008, 17:19   Nach oben    #3
Neuer Benutzer
 
Registriert seit: 27.02.2008
Beiträge: 2
Standard

Vielen Dank für die Antwort und die Links.
Kann schon sein, dass in dem Zertifikat, das ich mitgebe nicht das richtige steht. Wenn ichs mit dem Link http://public.robo47.net/ssl-zertifikat-info.php verifiziere, siehts allerdings ziemlich vollständig aus.


>Hier gibts nen Kommentar in dem Beschrieben wurde was er reingepackt hat:
>http://de.php.net/manual/en/ref.soap.php#71306
>Ich denke es wird nicht nur der Key gebraucht sondern anscheinend Cert + Key

Ich verstehe nicht so ganz, was da abläuft. Welcher Private Key wird da zusätzlich gebraucht? Mein eigener? Den Private Key vom Server habe ich ja nicht (und wäre meiner Meinung nach auch nicht so sinnvoll).
Oder muss ich dem SoapClient mein eigenes Zertifikat und mein Private Key mitgeben?

Gibt es eine Möglichkeit, PHP (oder dem Webserver) mitzuteilen, dass es bestimmten Zertifikaten trauen kann? Oder dass es allen Zertifikaten trauen kann? Ich habe in dieser Richtung etwas gefunden (verify_peer, allow_self_signed, http://ch2.php.net/manual/en/transports.php), weiss aber nicht, ob ich das Auswirkungen auf den SOAP-Client hat.
raol ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.02.2008, 17:32   Nach oben    #4
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.184
Standard

Zitat:
Ich verstehe nicht so ganz, was da abläuft. Welcher Private Key wird da zusätzlich gebraucht? Mein eigener? Den Private Key vom Server habe ich ja nicht (und wäre meiner Meinung nach auch nicht so sinnvoll).
Dass das mit dem private-key etwas komisch ist, habe ich mir auch schon gedacht, vor allem weil man da eben nicht drankommt im normalfall.

Zitat:
Ich habe in dieser Richtung etwas gefunden (verify_peer, allow_self_signed, http://ch2.php.net/manual/en/transports.php), weiss aber nicht, ob ich das Auswirkungen auf den SOAP-Client hat.
versuch es, wenn der soap-client auf die normalen transports von php zugreift sollte das helfen, dann brauchst du vielleicht den ganzen cert-kram nicht, da die namen der einstellungen und der parameter von SoapClient die gleichen sind, ist das sogar recht naheliegend.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2008, 10:19   Nach oben    #5
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Hi,
Läuft der Webservice auf einem IIS?
Ich hatte mal ebenfalls Probleme, eben mit einem Webservice der auf einem IIS lief.
Der Grund war, dass der IIS irgendwas im SSL-Handshake falsch machte. Es gab dazu auch einen offenen Bug auf php.net
Das Blöde war, dass die PHP-Jungs das Verhalten von PHP nicht korrigieren wollten, da der Fehler ja bei MS lag, oder immer noch liegt.
Die Lösung, auch wenn es doof klingt: Während dem Webservice-Call den Error-Level von PHP gesenkt.

Gruss,
Chrigu
chrigu ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SSL-Filter für Redirect auf https WarrenFaith Allgemeine Java-Programmierung 0 11.09.2007 10:35
kleines feines soap tutorial für php5 robo47 Literatur 5 24.01.2006 16:10
WSDL Soap Client 2rep Allgemeine Java-Programmierung 1 26.10.2005 20:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:15 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44