Ошибка ssl сертификата при использовании fsockopen()
Пробовал написать скрипт для проверки доступности сайтов и столкнулся с проблемой открытия ssl сертификатов на некоторых сайтах. Ошибка выглядит так:
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /home/p/pgd0211/test/public_html/system_files/script_verification.php on line 54 Warning: fsockopen(): Failed to enable crypto in /home/p/pgd0211/test/public_html/system_files/script_verification.php on line 54 Warning: fsockopen(): unable to connect to ssl://site.ru:443 (Unknown error) in /home/p/pgd0211/test/public_html/system_files/script_verification.php on line 54
Мой скрипт:
function send_headers_socket($url)
{
$url_param = parse_url($url);
if($url_param['scheme']=='http')
$handle = fsockopen($url_param['host'],80);
else
$fp=fsockopen('ssl://'.$url_param['host'], 443, $errno, $errstr, 30);
if(!$handle = $fp) return false;
if(!isset($url_param['path']) || $url_param['path']=='') $url_param['path']='/';
$headers = "GET ".$url_param['path']." HTTP/1.1\r\n";
$headers.= "Host: ".$url_param['host']."\r\n";
$headers.= "Connection: close\r\n";
$headers.="\r\n";
fputs($handle,$headers);
return $handle;
}
function get_resp_socket($handle)
{
if (!$handle) return false;
$resp='';
while (!feof($handle)) {
$resp.= fgets($handle,128);
}
fclose($handle);
$headers = substr($resp, 0, strpos($resp, "\r\n\r\n"));
return explode("\r\n", $headers);
}