phpbar.de logo

Mailinglisten-Archive

[php] xml rpc über https

[php] xml rpc über https

Alexander Koenig Alexander.Koenig at mpi.nl
Mon Sep 14 15:05:04 CEST 2009


Hallo zusammen,

vorweg, ich bin noch relativ neu bei PHP. Ich bin daher überaus offen
für und froh über generelle Tips, wo man als PHP-Programmierer nach
Lösungen im Netz suchen kann.

Im Moment habe ich aber ein spezielles Problem. Ich möchte über XML RPC
einen Webservice abfragen, bei dem ich mich über ein Zertifikat
authentifizieren muß. Nach einigem Suchen habe ich mich für die
Extension xmlrpc[1] entschieden.

Mein Code sieht momentan so aus:

<?php

require 'xmlrpc.inc';

$certificate = "/pfad/zum/zertifikat";
$passphrase = "supergeheim";

$f=new xmlrpcmsg('SomeClass.someMethod',array(new xmlrpcval(0,"int")));
$c=new xmlrpc_client("/pfad/auf/dem/Server","server.domain.tld", 443);
$c->setSSLVerifyPeer(true);
$c->setCertificate($certificate,$passphrase);
$r=$c->send($f,0,"https");
if (!$r->faultCode()) {
      $v = $r->value();
      print "<HR>I got this value back<BR><PRE>" .
        htmlentities($r->serialize()) . "</PRE><HR>\n";
  } else {
      print "Fault <BR>";
      print "Code: " . htmlentities($r->faultCode()) . "<BR>" .
            "Reason: '" . htmlentities($r->faultString()) . "'<BR>";
  }
?>


Offensichtlich mache ich etwas falsch, denn ich bekomme immer nur eine
Fehlermeldung, die mir sagt, daß mit meinem Zertifikat etwas nicht
stimmt. Mein Kollege, der den Webservice (in Java) geschrieben hat,
erzählt immer etwas von einem TrustStore, in den ich das Zertifikat
importieren muß.

Mein größtes Problem ist bei der ganzen Sache, daß ich nicht weiß, wo
genau das Problem liegt. Ich muß zugeben, daß mir eigentlich nicht ganz
klar ist, wie man Zertifikate in so einem Fall verwendet. Vielleicht
kann mir ja jemand ein gutes Tutorial empfehlen, in dem das so erklärt
wird, daß auch ein blutiger Anfänger wie ich es versteht.


Ach ja, noch etwas zum Kontext. Ich möchte das Ergebnis des RPC-Aufrufs
in Wordpress verwenden. Und untendrunter läuft ein Apache. Wenn es also
ein einfache Möglichkeit gibt, das Zertifikatshandling an WP oder Apache
auszulagern wäre mir das auch recht.


auf Hilfe hoffend,
Alex


[1] http://phpxmlrpc.sourceforge.net/

php::bar PHP Wiki   -   Listenarchive