SSL证书:无法在PHP 7.1 Ubuntu 16.04 NGINX上获得本地颁发者证书

时间:2017-07-28 16:07:58

标签: php ssl curl nginx wsdl

我正在尝试通过cURL使用HTTPS服务。

当我在CLI中执行以下命令时,它可以正常工作。

curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: createLabel" --data @testRequest.xml https://labelqa.estafeta.com/EstafetaLabel20/services/EstafetaLabelWS?wsdl --cacert labelqa.estafeta.com.pem

但是当我尝试使用相同但在PHP中时,浏览器会返回此错误。

  

SSL证书问题:无法获得本地颁发者证书

我有以下代码。

$ch = curl_init("https://labelqa.estafeta.com/EstafetaLabel20/services/EstafetaLabelWS?wsdl");

curl_setopt($ch, CURLOPT_POSTFIELDS, "xmlRequest=testRequest.xml");

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: text/xml;charset=UTF-8',
    'SOAPAction: createLabel',
]);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CAINFO, 'labelqa.estafeta.com.crt');

$response = curl_exec($ch);

if (FALSE === $response)
    throw new Exception(curl_error($ch), curl_errno($ch));

curl_close($ch);

print_r($response);

die;

应该使用PHP的SoapClient进行调用,但由于同样的问题它无论如何都不起作用。

您可以从此链接https://labelqa.estafeta.com/EstafetaLabel20/services/EstafetaLabelWS?wsdl下载de labelqa.estafeta.com.crt 证书。

0 个答案:

没有答案