我想使用PHP cURL连接到安全站点。网站所有者给了我们四个文件:
和PEM密码短语。
$curl_resource = curl_init ();
curl_setopt ( $curl_resource, CURLOPT_URL, $sHost );
curl_setopt ( $curl_resource, CURLOPT_POST, 1 );
curl_setopt ( $curl_resource, CURLOPT_POSTFIELDS, $post_string );
curl_setopt ( $curl_resource, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $curl_resource, CURLOPT_HTTPHEADER, $headerdata);
curl_setopt ( $curl_resource, CURLOPT_HEADER, true);
curl_setopt ( $curl_resource, CURLOPT_SSLCERT , HOMEDIR.'cert/icom-live-ca.pem');
curl_setopt ( $curl_resource, CURLOPT_SSLCERTPASSWD, 'PEM pass phrase');
curl_setopt ( $curl_resource, CURLOPT_SSLKEY, HOMEDIR.'cert/secure.key');
curl_setopt ( $curl_resource, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt ( $curl_resource, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ( $curl_resource, CURLOPT_SSLCERTTYPE, 'PEM');
我收到以下错误:
无法设置私钥文件:'filepath'/ secure.key类型为PEM。
我的服务器上没有进行任何设置。我是否需要在客户端服务器上安装/更改任何设置以及访问HTTPS站点?
答案 0 :(得分:2)
您应该检查它们所在的文件和目录的文件权限,以确保您的程序可以正确读取它们。如果这不起作用,请检查.pem文件以确保证书后面是其颁发者的证书。
有关详细信息,请参阅此问题和解答:Unable to use libcurl to access a site requiring client authentication