XML-RPCで、サーバ側にhttpsを使用する場合、クライアント側でcURLがSSLを認証できないとエラーになることがあります。
これは、cURLにSSLの証明書が入っていないのが原因です。
(Curl returned non-null errno 60:SSL certificate problem, verify that the CA cert is OK.
Details:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed)
解決方法
そこで、証明書のチェックを無効化します。
生PHPでcurlをたたく場合、以下のようにします。
$ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
PEAR::XML_RPC2を使う場合、以下のように、'sslverify'をfalseに指定します。
$options = array('debug' => false, 'sslverify' => false); $url = "http://example.com/xmlrpc.php"; $this->client = XML_RPC2_Client::create($api, $options);