PHP curl-发送证书的正确方法?

时间:2018-08-31 14:42:34

标签: php curl

我正在使用需要对其进行验证的Web服务,该服务由curl发送的一个客户端证书。我已经从.pfx文件中提取了证书(.pem),公钥和私钥(.pem)。

我正在发送,然后这样:

    curl_setopt($ch, CURLOPT_SSLCERT, '_cert.pem');
    curl_setopt($ch, CURLOPT_SSLKEY, '_priKEY.pem');
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
    curl_setopt($ch, CURLOPT_KEYPASSWD, '****');

但是WS总是返回我需要发送客户证书的消息。什么是正确的发送方式?

其他问题:我不需要发送公钥文件吗?真的需要“ keypasswd”吗?

1 个答案:

答案 0 :(得分:0)

我使用的是“ HTTP ”,并且要根据请求发送证书,我需要使用“ HTTPS ”。

当格​​式为 .pem 时,无需使用“ CURLOPT_SSLCERTTYPE ”选项,因为.pem已经是默认格式。 通常,不需要发送“ 公钥”,只需发送私钥(当证书具有一个时)。

当私钥具有某些密码时,需要使用“ CURLOPT_KEYPASSWD ”,否则,请勿使用它。