我已经建立了一个通过网址访问第三方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?如果是这样,你能指出我正确的方向吗?
有更好的方法吗?