shredder
Новичок
Добрый день.
Платформа entware, PHP 7.2.22
Известно, что в отличие от многих других сайтов, api.github.com разрешает доступ к себе ТОЛЬКО (не ниже) по TLS 1.2
Пример PHP скрипта, генерирующий ошибку:
Выдаёт ошибку "error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version" :
, из чего предполагаю, что openssl функционирует и настроен корректно.
Поставил на десктоп с windows PHP 7.2.22, там тестовый скрипт отрабатывает без ошибок.
, могу предположить что PHP как-то криво откомпилирован-настроен, либо его версия под линукс работает некорректно.
Что тут можно сделать, куда копать?
P.S. обнаружилось это, когда composer не смог скачать зависимости с гитхаба.
Платформа entware, PHP 7.2.22
Известно, что в отличие от многих других сайтов, api.github.com разрешает доступ к себе ТОЛЬКО (не ниже) по TLS 1.2
Пример PHP скрипта, генерирующий ошибку:
Код:
<?php
$arr_hosts = array(
'yandex.ru'
,'api.github.com'
);
foreach($arr_hosts as $host){
print "check $host:<br/>\r\n";
$fp = stream_socket_client("tlsv1.2://$host:443", $errno, $errstr, 30);
if (!$fp) {
die("Unable to connect: $errstr ($errno)");
}
$header = "GET / HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\n\r\n";
print $header;
fwrite($fp, $header);
if (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
}
?>
При этом curl работает корректно:check yandex.ru:<br/>
GET / HTTP/1.0
Host: yandex.ru
Accept: */*
HTTP/1.1 200 Ok
check api.github.com:<br/>
<br />
<b>Warning</b>: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
<br />
<b>Warning</b>: stream_socket_client(): Failed to enable crypto in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
<br />
<b>Warning</b>: stream_socket_client(): unable to connect to tlsv1.2://api.github.com:443 (Unknown error) in <b>/opt/share/www/test_crypto.php</b> on line <b>42</b><br />
Unable to connect: (0)
curl https://api.github.com/repos/danog/MagicalSerializer/zipball/87b6ed05a86021e9364f31133089bb83980d5e24
, из чего предполагаю, что openssl функционирует и настроен корректно.
Поставил на десктоп с windows PHP 7.2.22, там тестовый скрипт отрабатывает без ошибок.
, могу предположить что PHP как-то криво откомпилирован-настроен, либо его версия под линукс работает некорректно.
Что тут можно сделать, куда копать?
P.S. обнаружилось это, когда composer не смог скачать зависимости с гитхаба.