无法使用cURL设置私钥文件

时间:2011-03-01 06:19:23

标签: php curl

我想使用PHP cURL连接到安全站点。网站所有者给了我们四个文件:

  1. sitename.key
  2. sitename.p12
  3. sitename.pem
  4. ICOM-活ca.pem
  5. 和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站点?

1 个答案:

答案 0 :(得分:2)

您应该检查它们所在的文件和目录的文件权限,以确保您的程序可以正确读取它们。如果这不起作用,请检查.pem文件以确保证书后面是其颁发者的证书。

有关详细信息,请参阅此问题和解答:Unable to use libcurl to access a site requiring client authentication