SOAP, SSL und Clientzertifikate

SOAP, SSL und Clientzertifikate

Im Projektgeschäft kommt es immer mal wieder vor dass man mit sehr speziellen Anforderungen umgehen muss. In einem aktuellen Projekt bestand der Endkunde darauf dass die SOAP Kommunikation via SSL mit entsprechendem Client-Zertifikat abzulaufen hat. Klingt kompliziert, ist es leider auch.

Das folgende Snippet zeigt wie man den SOAP Client richtig instanziiert:

$sWebservice = "https://127.0.0.1:443/Portal/AD_Webservice.svc";
$sCertFile = dirname(__FILE__).'/islocal.pem';
$sPassphrase = "CustomPassphrase";

try
{
$oClient = new SoapClient(
$sWebservice.'?wsdl',
array(
'location' => $sWebservice,
'local_cert' => $sCertFile,
'passphrase' => $sPassphrase,
'exceptions' => 1,
'trace' => true
)
);
}
catch(Exception $oException)
{
// error handling
}


Wichtige Hinweise:

  • Es ist essentiell in der Url trotz des https Protokolls den SSL Port anzugeben

  • Sollte man vom Kunden mehrere Dateien (Zertifikat und Key getrennt) so müssen diese concateniert werden - erst der Key, dann das Zertifikat

  • Immer mit der neusten PHP Version testen, bei älteren PHP Versionen ist die Funktionsfähigkeit u.U. nicht gegeben


Eintrag von Stephan Hochdörfer am 16.06.2010

Tags: PHP

Diese Webseite verwendet Cookies, um die Bedienfreundlichkeit zu erhöhen. Mit der Nutzung unserer Webseite wird das Einverständnis erklärt, dass wir Cookies verwenden. Weitere Informationen.