3
我需要從PHP訪問RESTful Web服務(目前僅支持GET)。該服務只能通過有效的客戶端證書通過HTTPS訪問。如何使用PHP HTTP客戶端執行基於證書的身份驗證
我發現了很多PHP的基本身份驗證示例,但沒有一個用於客戶端基於證書的HTTP身份驗證。有沒有可以將證書發送到服務器的PHP HTTP客戶端?
現在我正在使用一個外部應用程序(wget),但是這是相當緩慢和黑客。
我需要從PHP訪問RESTful Web服務(目前僅支持GET)。該服務只能通過有效的客戶端證書通過HTTPS訪問。如何使用PHP HTTP客戶端執行基於證書的身份驗證
我發現了很多PHP的基本身份驗證示例,但沒有一個用於客戶端基於證書的HTTP身份驗證。有沒有可以將證書發送到服務器的PHP HTTP客戶端?
現在我正在使用一個外部應用程序(wget),但是這是相當緩慢和黑客。
基於證書的身份驗證不是HTTP的一部分,但是SSL/TLS的一部分。
您可以使用捲曲做這樣的認證:
$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
。