【问题标题】:How to perform cert-based auth with a PHP HTTP client如何使用 PHP HTTP 客户端执行基于证书的身份验证
【发布时间】:2011-03-07 16:47:34
【问题描述】:

我需要从 PHP 访问一个 RESTful 网络服务(现在只有 GET)。只能使用有效的客户端证书通过 HTTPS 访问该服务。

我发现了很多 PHP 的基本身份验证示例,但没有一个用于客户端基于证书的 HTTP 身份验证示例。是否有 PHP HTTP 客户端也可以向服务器发送证书?

目前我正在使用外部应用程序 (wget),但这相当慢且很麻烦。

【问题讨论】:

    标签: php rest certificate restful-authentication authentication


    【解决方案1】:

    基于证书的身份验证不是 HTTP 的一部分,而是 SSL/TLS 的一部分。

    您可以使用 cURL 进行此类身份验证:

    $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);
    

    有关选项的更多信息,请参阅the manual page of curl_setopt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 2012-01-10
      • 2018-10-20
      • 2014-08-23
      • 2015-10-29
      • 2018-07-05
      相关资源
      最近更新 更多