stream_context_create不再与SSL / HTTPS和代理一起使用

时间:2019-01-18 13:21:34

标签: php ssl

我有一个php脚本,可通过我们的代理将详细信息发送到外部HTTPS站点并返回json文件。直到几天前它一直运行良好,现在它返回错误

在阅读了这里的各种文章之后,我尝试在上下文选项中添加https而不是http,但是仍然出现相同的错误。如果我将网站更改为https://google.com之类的,那很好。在浏览器中访问URL也可以正常工作,并按预期方式返回JSON文件,并且我们使用与PHP中指定的相同的代理进行浏览。

<?php
$arrContextOptions=array(
    'http' => array(
        'proxy' => 'servername:8080',
        'request_fulluri' => true,
    )
);
$sortCode = $_POST['sortCode'];
$accNum = $_POST['accNum'];
$fullURL = "https://websiteURL.com/api/textremoved?apikey=ABCDEF1234&sortCode=".$sortCode."&accountNumber=".$accNum;
$json = file_get_contents($fullURL, false, stream_context_create($arrContextOptions));
$obj = json_decode($json);
?>

我得到的错误是:

PHP Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure in C:\inetpub\wwwroot\Finance\DirectDebit.php on line 42

PHP Warning:  file_get_contents(https://websiteURL.com/api/textremoved?apikey=ABCDEF1234&sortCode=123456&accountNumber=12345678): failed to open stream: Cannot connect to HTTPS server through proxy in C:\inetpub\wwwroot\Finance\DirectDebit.php on line 42

完整文件中的第42行(已删除CSS等)为:

$json = file_get_contents($fullURL, false, stream_context_create($arrContextOptions));

几天前,当它运行时,没有任何错误,它只是返回了JSON

0 个答案:

没有答案