尝试连接到Azure API时出现SSL错误

时间:2017-07-29 09:13:27

标签: php azure ssl https

我正在尝试连接到Azure API。我对此有点新鲜。我正在使用示例中给出的php代码。我在本地服务器上使用wamp。

我已在localhost上配置SSL,以便我能够打开https://www.wamphelpers.dev/faces.php

但是我不断收到以下错误:

 Failed to enable crypto stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in <b>C:\wamp\bin\php\php5.5.12\pear\HTTP\Request2\Adapter\Socket.php

My code is below:

<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';

$request = new Http_Request2('https://southeastasia.api.cognitive.microsoft.com/face/v1.0/persongroups/{personGroupId}');
$url = $request->getUrl();


$headers = array(
    // Request headers
    'Content-Type' => 'application/json',
    'Ocp-Apim-Subscription-Key' => 'keygoeshere',
);

$request->setHeader($headers);

$parameters = array(
    // Request parameters
    'personGroupId' => 'heroes',
);



$url->setQueryVariables($parameters);

$request->setMethod(HTTP_Request2::METHOD_PUT);

// Request body
$request->setBody("heroes");

try
{
    $response = $request->send();
    echo $response->getBody();
}
catch (HttpException $ex)
{
    echo $ex;
}

?>

从我所看到的是证书问题,我检查了我的php设置,并确保它指向正确的文件。 out在下面:

OPENSSL_CONF    C:\OpenSSL-Win32\bin\openssl.cfg

我读了一下,似乎我可以使用context_options在PHP中禁用SSL检查,使验证对等体为false。

但是如何使用它来点击网址。

以下是API参考的链接。

1 个答案:

答案 0 :(得分:0)

只需指出HTTP/Request2即可使用CA捆绑包as instructed here

  

ssl_cafile

     

用于验证对等方的证书颁发机构文件(在ssl_verify_peer为TRUE时使用)。你可以用例如cURL's CA Extract tool获取此类文件。

$request = new HTTP_Request2();
$request->setConfig(array(
    'ssl_cafile' => '/path/to/cacert.pem'
));

现在可以针对整个链验证远程证书。