• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
  • Класс: CSiteCheckerTest
  • Вызов: CSiteCheckerTest::check_socket_ssl
function check_socket_ssl()
{
	if (!file_exists($this->cafile) || filesize($this->cafile) == 0)
		return $this->Result(null, GetMessage("MAIN_SC_TEST_SSL1"));

	if (!$context = stream_context_create(
		array(
			'ssl' => array(
				'verify_peer' => true,
				'allow_self_signed' => false,
				'cafile' => $this->cafile,
			)
		)
	))
		return false;

	echo "Connection to ssl://{$this->host}:443 (certificate check enabled)	";
	if ($res = stream_socket_client('ssl://'.$this->host.':443', $errno, $errstr, 10, STREAM_CLIENT_CONNECT, $context))
	{
		echo "Successn";
		fclose($res);
		return true;
	}
	echo "Failn";

	if (!$context = stream_context_create(
		array(
			'ssl' => array(
				'verify_peer' => false,
				'allow_self_signed' => true,
				'cafile' => $this->cafile,
			)
		)
	))
		return false;

	echo "Connection to ssl://{$this->host}:443	";
	if ($res = stream_socket_client('ssl://'.$this->host.':443', $errno, $errstr, 10, STREAM_CLIENT_CONNECT, $context))
	{
		echo "Successn";
		fclose($res);
		return $this->Result(null, GetMessage("MAIN_SC_SSL_NOT_VALID"));
	}
	echo "Failn";
	return $this->Result(null, GetMessage("MAIN_SC_NO_CONNECTTO", array('#HOST#' => 'https://'.$this->host)));
}