开发者

How to perform cert-based auth with a PHP HTTP client

I need to access a RESTful webservice from PHP (only GET for now). The service can only be accessed over HTTPS with a valid client certific开发者_开发问答ate.

I found plenty of basic auth examples for PHP, but not a single one for client-side cert-based HTTP auth. Is there a PHP HTTP client which can also send certificates to the server?

For now I am using an external application (wget), but this is rather slow and hacky.


Certificate-based authentication is not part of HTTP but part of SSL/TLS.

You can use cURL to do such authentication:

$ch = curl_init('https://example.com/');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '1');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, '1');
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/ca.crt');
curl_setopt($ch, CURLOPT_SSLCERT, '/path/to/cert/client-cert.pem');
$response = curl_exec();
curl_close($ch);

See the manual page of curl_setopt for more information on the options.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜