leicht-debil
Neu angemeldet
Servus Leute!
Ich stehe vor einem Problem, das mir unlösbar erscheint.
Ich muss Daten von einem Webservice abrufen, der diese via HTTPS- und SOAP-Schnittstelle anbietet.
Mit der SOAP-Schnittstelle gibt es derzeit wohl Probleme auf Seiten des Anbieters, sodass ich auf HTTPS zurückgreifen muss.
Mein Problem: Der Webservice (Anbieter-Server) benötigt eine zertifikat-basierte Klienten-Authentication meinerseits. Hierzu wurde mir vom Anbieter ein Zertifikat im p12-Format zugestellt.
Diese habe ich in das pem-Format formatiert, was unter Verwendung von "NuSoap" nicht funktionierte.
Nach etwas Recherche habe ich dann den folgenden Artikel (aus 2005 ;-)) gefunden: http://curl.haxx.se/mail/archive-2005-09/0138.html
Ich habe also die Zertifikate und den Key aus der p12-Datei separat extrahiert:
[src=powershell]openssl pkcs12 -in MULTICERT.p12 -out ca.pem -cacerts -nokeys
openssl pkcs12 -in MULTICERT.p12 -out client.pem -clcerts -nokeys
openssl pkcs12 -in MULTICERT.p12 -out key.pem -nocerts [/src]
Unter Verwendung von "NuSoap" hat es funktioniert:
[src=php]$client-cert = 'pfad/client.pem';
$private-key = 'pfad/key.pem';
$ca-cert = 'pfad/ca.pem';
$passphrase = '*****';
$client = new nusoap_client("https://foo.bar",array('soap_version' => SOAP_1_1));
$client->authtype = 'certificate';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';
$client->certRequest['passphrase'] = $passphrase;
$client->certRequest['sslcertfile'] = $client-cert;
$client->certRequest['sslkeyfile'] = $private-key;
$client->certRequest['cainfofile'] = $ca-cert;[/src]
hiermit kann ich eine Verbindung aufbauen (SOAP).
Da ich nun aber eine "normale" HTTPS-Verbindung zu XML-Dateien auf dem Anbieter-Server benötige (fopen,file_get_contents,simplexml_load_file), weiß ich nicht, was ich tun muss, um mich "auszuweisen".
Die Fehler-Meldungen sind logischer Weise immer die gleichen:
simplexml_load_file:
file_get_contents
fopen:
Kann mir bitte jemand helfen?
Ich stehe vor einem Problem, das mir unlösbar erscheint.
Ich muss Daten von einem Webservice abrufen, der diese via HTTPS- und SOAP-Schnittstelle anbietet.
Mit der SOAP-Schnittstelle gibt es derzeit wohl Probleme auf Seiten des Anbieters, sodass ich auf HTTPS zurückgreifen muss.
Mein Problem: Der Webservice (Anbieter-Server) benötigt eine zertifikat-basierte Klienten-Authentication meinerseits. Hierzu wurde mir vom Anbieter ein Zertifikat im p12-Format zugestellt.
Diese habe ich in das pem-Format formatiert, was unter Verwendung von "NuSoap" nicht funktionierte.
Nach etwas Recherche habe ich dann den folgenden Artikel (aus 2005 ;-)) gefunden: http://curl.haxx.se/mail/archive-2005-09/0138.html
Ich habe also die Zertifikate und den Key aus der p12-Datei separat extrahiert:
[src=powershell]openssl pkcs12 -in MULTICERT.p12 -out ca.pem -cacerts -nokeys
openssl pkcs12 -in MULTICERT.p12 -out client.pem -clcerts -nokeys
openssl pkcs12 -in MULTICERT.p12 -out key.pem -nocerts [/src]
Unter Verwendung von "NuSoap" hat es funktioniert:
[src=php]$client-cert = 'pfad/client.pem';
$private-key = 'pfad/key.pem';
$ca-cert = 'pfad/ca.pem';
$passphrase = '*****';
$client = new nusoap_client("https://foo.bar",array('soap_version' => SOAP_1_1));
$client->authtype = 'certificate';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';
$client->certRequest['passphrase'] = $passphrase;
$client->certRequest['sslcertfile'] = $client-cert;
$client->certRequest['sslkeyfile'] = $private-key;
$client->certRequest['cainfofile'] = $ca-cert;[/src]
hiermit kann ich eine Verbindung aufbauen (SOAP).
Da ich nun aber eine "normale" HTTPS-Verbindung zu XML-Dateien auf dem Anbieter-Server benötige (fopen,file_get_contents,simplexml_load_file), weiß ich nicht, was ich tun muss, um mich "auszuweisen".
Die Fehler-Meldungen sind logischer Weise immer die gleichen:
simplexml_load_file:
simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
file_get_contents
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
fopen:
SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Kann mir bitte jemand helfen?
Zuletzt bearbeitet: