如何将证书传递给调用需要证书的第三方Web服务的php Web服务

时间:2016-07-08 22:32:16

标签: php web-services ssl curl client-certificates

我已经建立了一个通过网址访问第三方API的php页面。我的php页面在运行apache的本地服务器上运行。第三方API需要与证书绑定的证书和用户名/密码。如果我在本地Web服务器上安装证书,将curl选项设置为指向本地安装的证书并使用证书的用户凭据(这些在URL中),则API调用有效。

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,2);
curl_setopt($curl, CURLOPT_CAINFO, $certname);
curl_setopt($curl,CURLOPT_SSLCERT, $certname);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
$results = curl_exec ($curl);
curl_close ($curl);

我的问题是,有许多内部用户,每个用户都有自己的安装在客户端计算机上的API证书。我不知道如何通过"从用户浏览器到我的php页面的证书,然后在curl选项中使用它。

是否可以将客户端计算机上安装的客户端证书传递给第三方API?如果是这样,你能指出我正确的方向吗?

有更好的方法吗?

0 个答案:

没有答案