Найти в Дзене
Технология кода

Инструмент для проверки работоспособности сайтов: проверка сертификата SSL и доступности страницы, часть 1

В современном информационном обществе, где веб-ресурсы являются неотъемлемой частью бизнеса, эффективность и надежность функционирования сайтов имеют решающее значение. Для вебмастеров, ответственных за поддержку и обслуживание веб-приложений, критически важно оперативно отслеживать работоспособность своих сайтов. Однако, многократная ручная проверка может быть не только трудоемкой, но и неэффективной. Рассмотрим создание инструмента, способного автоматизировать процесс получения отчетов о работоспособности веб-ресурсов. Благодаря данному инструменту, вебмастеры смогут получать уведомления о возможных сбоях по заданному расписанию, а также запрашивать отчеты в удобное время. Для начала создадим функцию, которая будет проверять доступность сайта, а также работоспособность SSL сертификата.
function checkSite($url, $name) {
$stream = stream_context_create(array("ssl" => array("capture_peer_cert" => true)));
$read = fopen($url, "rb", false, $stream);
$cont = stream_context_get

В современном информационном обществе, где веб-ресурсы являются неотъемлемой частью бизнеса, эффективность и надежность функционирования сайтов имеют решающее значение. Для вебмастеров, ответственных за поддержку и обслуживание веб-приложений, критически важно оперативно отслеживать работоспособность своих сайтов. Однако, многократная ручная проверка может быть не только трудоемкой, но и неэффективной.

Рассмотрим создание инструмента, способного автоматизировать процесс получения отчетов о работоспособности веб-ресурсов. Благодаря данному инструменту, вебмастеры смогут получать уведомления о возможных сбоях по заданному расписанию, а также запрашивать отчеты в удобное время.

Для начала создадим функцию, которая будет проверять доступность сайта, а также работоспособность SSL сертификата.


function checkSite($url, $name) {
$stream = stream_context_create(array("ssl" => array("capture_peer_cert" => true)));
$read = fopen($url, "rb", false, $stream);
$cont = stream_context_get_params($read);
$var = ($cont["options"]["ssl"]["peer_certificate"]);
$r = (!is_null($var)) ? true : false;
if($r) {
$error_sert = "ssl ok";
} else {
$error_sert = "ssl BAD";
}
$headers = @get_headers($url);
if (empty($headers[0])) {
$code = 'BAD';
} else {
$code = "ok";
}
$result = $error_sert;
return $name.": ".$code.", ".$result;
}

Для начала, функция создает поток с использованием контекста stream_context_create. В этом контексте устанавливается параметр "capture_peer_cert" в значение true, что позволяет получить информацию о SSL-сертификате сайта.

Затем функция открывает URL-ссылку с использованием функции fopen и передает ранее созданный поток. Полученные параметры потока сохраняются в переменной $cont.

Далее, проверяется наличие SSL-сертификата. Если переменная $var, содержащая информацию о сертификате, не равна null, то SSL-сертификат считается действительным, и переменной $error_sert присваивается значение "ssl ok". В противном случае, переменной $error_sert присваивается значение "ssl BAD".

После этого, с помощью функции get_headers проверяется доступность сайта по URL. Если первый элемент массива $headers, полученного с помощью функции get_headers, пуст, то сайт считается недоступным, и переменной $code присваивается значение "BAD". В противном случае, переменной $code присваивается значение "ok".

Наконец, функция формирует и возвращает строку, содержащую имя сайта ($name), код доступности сайта ($code) и результат проверки SSL-сертификата ($result).

Использование функции checkSite позволяет вебмастерам быстро отследить состояние своих сайтов и получить информацию о доступности и валидности SSL-сертификатов. Это может быть полезно для своевременных действий в случае обнаружения проблем, связанных с SSL-сертификатами или недоступностью сайта.

В следующей части расскажу про отправку уведомлений о состоянии сайтов при помощи телеграм бота по расписанию и и по запросу.