Как проверить есть ли сертификат безопасности на сайте

При открытии сайтов в браузере иногда возникают ошибки – домен в адресной строке выделяется красным с зачеркиванием или ресурс вообще не открывается. Типовая причина скрывается в сбоях работы сертификата SSL. Исправить их может только администратор сайта, но перед обращением к нему стоит проверить собственный компьютер.

Что такое SSL

Текущие тенденции сайтостроения предполагают высокую безопасность соединения пользователя с веб-ресурсом. Это необходимо для защиты персональных данных, секретных номеров банковских карт и информации о проводимых сделках. Организуется безопасность подключением протокола шифрования Secure Sockets Layer (сокращенно SSL).

SSL

  1. Сертификат выпускается доверенным центром Certification Authority (CA).
  2. После выдачи он подключается к домену средствами провайдера хостинга.
  3. Срок его действия ограничен 1 годом, после чего требуется продление.

Работа сайта возможна и без SSL, но поисковые системы «не доверяют» таким ресурсам и помечают их в браузере как неблагонадежные. Поэтому лучше разобраться, как решить проблему с защитой и полноценно пользоваться протоколом HTTPS. Сертификат актуален на сайтах, где присутствует регистрация, предлагается покупка товаров или онлайн-оплата различных сервисов.

Сертификат ССЛ

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Причины появления ошибок SSL

Существует всего две причины, почему браузер отображает ошибку сертификата SSL со стороны сервера. Первая заключается в окончании срока активации, вторая – это покупка сертификата у поставщика без достаточных полномочий для выдачи «полноценной защиты». Например, виной может быть выбор самоподписанного сертификата, лишь эмулирующего работу реального протокола.

Остальные проблемы обычно скрываются на локальном компьютере:

  1. Произошел сброс системного времени.
  2. Неправильно настроена антивирусная программа.
  3. Сбоит браузер или установленное расширение.
  4. Срабатывает вредоносный скрипт.

Чтобы выяснить настоящую причину, пользователю браузера рекомендуется проверить все перечисленные факторы. При том же заражении компьютерными вирусами возможно проявление сразу нескольких симптомов – от изменения текущего времени и блокировки антивирусом до подключения перенаправления страниц в браузере и других неприятностей.

Изредка встречаются ситуации, когда проблема возникла со стороны администратора, если он ошибся при подключении нового сертификата или забыл продлить его действие. Обычно такие неполадки устраняются быстро, потому что после активации сайт проверяется и, в случае неработоспособности сертификата, проводится повторное подключение вплоть до получения положительного результата.

Время и дата

Сертификат SSL имеет четко обозначенный срок действия с датой активации и деактивации. Такой подход отчасти дает дополнительную защиту, потому что в случае технического сбоя в системных часах компьютера сайты перестают открываться. Сброс времени обычно происходит «назад», на дату изготовления материнской платы, на что и реагирует система.

Варианты исправления ситуации:

  1. Вручную внести корректную дату и время, после чего обновить страницу в браузере.
  2. Воспользоваться функцией синхронизации через интернет, встроенной в Windows.
  3. Заменить батарейку на памяти BIOS. При первом запуске ПК нужно внести корректные данные.

Каждый раз после изменения времени рекомендуется ручное обновление страницы или перезапуск браузера. Такой шаг активирует повторное соединение с сервером и позволяет зайти на сайт «с нуля», но уже с правильным временем, соответствующим сроку действия сертификата SSL (после активации и до ее завершения).

Настройки антивируса и брандмауэра

Программы для защиты компьютера от вирусов и хакерских атак иногда блокируют и «полезные» соединения, например, определенные домены или сразу весь протокол HTTPS, используемый при подключении сертификата SSL. Большинство антивирусов и брандмауэров проверяют его работу, и это становится причиной блокировки сайта как «злоумышленника, пытающего украсть данные».

Ошибка антивируса

Варианты исправления ситуации:

  1. Отключить режим «проверка протокола HTTPS». После этого зайти на сайт заново.
  2. Полностью выключить антивирусную программу. Перезагрузить ПК, открыть страницу.
  3. Сбросить настройки брандмауэра. Опять проводится перезапуск компьютера и веб-ресурса.

Функция временного отключения имеется в любой защитной программе, даже интегрированной в операционную систему Windows. Но это не гарантирует полную деактивацию приложения. В этом случае разобраться в ситуации поможет открытие сайта на другом компьютере или запуск безопасного режима (актуально для проводного подключения к интернету).

Браузер и операционная система

Наличие проблемы с браузером проще всего определить открытием сайта на другом устройстве или в другой программе. Иногда решение заключается в банальном обновлении версии приложения до актуальной. То же относится к операционной системе, если используется интегрированный браузер вроде Edge. Пакеты обновлений для того и выпускаются, чтобы устранять неполадки в ПО.

Браузер и операционная система

Варианты исправления ситуации:

  1. Полностью очистить историю браузера вместе с кэшем и другими данными.
  2. Временно отключить все ранее установленные и активные расширения.
  3. Переустановить программу после ее полной деинсталляции.

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

Заражение компьютерными вирусами

Заражение компьютерными вирусами

Варианты исправления ситуации:

  1. Временно отключить все программы из автозагрузки.
  2. Провести очистку диска от временных файлов.
  3. Перезагрузить компьютер после предыдущих шагов.

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

Если предложенные способы устранения ошибки SSL не помогли, остается ждать, пока проблему устранит администратор, или воспользоваться любым другим тематическим сайтом с аналогичным контентом.

Статья посвящена обзору и сравнению различных SSL-сертификатов.

Мы все заботимся о безопасности: на машину ставим сигнализацию, а двери квартиры закрываем на замок. Точно так же сайты обеспечивают себе безопасность. Один из главных элементов этой безопасности – SSL-сертификат, применяемый еще с далекого 1994 года. Именно он обеспечивает безопасный канал связи между сайтом и пользователем.

SSL-сертификаты бывают трех видов:

• DV (Domain Validation) проверка домена, быстрая выдача от 15 минут;
• OV (Organization Validation) проверка организации, выпускается за несколько дней;
• EV (Extended Validation)
расширенная проверка (знаменитый зеленый замочек, как у Timeweb), выпускается за неделю.

Сегодня мы будем рассматривать сертификаты с проверкой домена (DV), причем только бесплатные варианты, и выберем, какой сертификат больше всего подходит для старта.

Let’s Encrypt – классика жанра

Let’s Encrypt (letsencrypt.org) некоммерческая организация, созданная в 2012 году, обрела свою популярность исключительно из-за бесплатных сертификатов (на 90 дней).

  • сертификат сроком на 90 дней;
  • поддержка IDN (с 2016 года);
  • уведомления об истечении сертификата.
  • требуется установить клиент на сервер для получения сертификата или воспользоваться сторонними сервисами, такими как sslforfree.com или zerossl.com;
  • из-за этого увеличивается время выдачи – в среднем оно занимает 15 минут;
  • на сторонних сервисах всего один способ подтверждения по HTTP, например, на бесплатных хостингах часто используется система против ботов — тут-то получить сертификат и не получится,
  • не поддерживаются некоторые операционные системы и старые браузеры, не очень большая совместимость,
  • нет гарантии безопасности,

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Free SSL Space

Free SSL Space (freessl.space) довольно новый проект, партнерами которого являются один из крупнейших сертифицирующих центров Sectigo CA (ранее Comodo CA), выпускающий эти сертификаты, и крупный продавец платных сертификатов GoGetSSL (gogetssl.com).

  • защита www и основного сайта;
  • уведомления об истечении сертификата;
  • гарантия 10,000$ от GoGetSSL;
  • поддержка 99,6% устройств (очень высокая совместимость);
  • получение сертификата — не более 5 минут;
  • разные способы подтверждения домена (HTTP, CNAME и почта);
  • сертификат на 90 дней с безлимитными продлениями;
  • нет возможности добавить поддомены, для каждого нужно заказывать свой сертификат.

Немного о платных сертификатах

Под конец статьи хочется напомнить, что бесплатный сертификат никогда не заменит платного и рекомендуется для использования только во время тестирования. Если ваш проект является серьезным, советуем купить платный сертификат – это надежнее, да и поводов для волнения меньше. 

Хорошим примером соотношения цены и качества будет Sectigo Positive SSL — можете купить его по низкой цене в панели Timeweb: поддерживается один домен, но на год, а не на 90 дней.

Positive SSL

Выводы

По быстроте и удобству выдачи несомненная победа у Free SSL Space. С безопасностью у него тоже все в порядке, именно поэтому мы рекомендуем использовать именно его.

SSL сертификат

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

Аббревиатура SSL расшифровывается как Secure Sockets Layer, или уровень защищенных сокетов. Вообще-то так назывались только первые версии протокола. Современный вариант имеет официальное название TLS, или Transport Layer Security — защита транспортного уровня. Но по привычке его продолжают называть SSL.

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

Благодаря SSL данные, которые передаются по сети, не может увидеть или прочитать посторонний. Без этого протокола информация передается в открытом виде и доступна любому, кто «слушает» трафик сети.

Для чего нужны SSL и SSL-сертификат

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

Данные шифруются с помощью пары уникальных цифровых ключей: публичного и приватного. Первый видят все, второй — только сам владелец сайта. А то, что ключ принадлежит конкретному сайту, подтверждает SSL-сертификат.

SSL-сертификат — это своеобразная цифровая подпись. Его наличие подтверждает, что пользователь действительно подключается к нужному сайту, владельцу ключа, а не к мошеннику, который подменил адреса и перенаправляет запросы на какой-то другой сервер.

Сертификат выдается автоматически при генерации пары ключей и неразрывно связан с реализацией протокола. Без него SSL не будет работать.

Как выглядит проверка сертификата

Процесс можно представить как последовательность действий.

  1. Пользователь или система обращаются к веб-серверу сайта. Это может быть любое действие: практически все, что вы делаете на сайте, — обмен информацией, для которого нужен запрос к серверу.
  2. Браузер пользователя требует у веб-сервера идентификацию.
  3. В ответ веб-сервер отправляет браузеру копию SSL-сертификата, и тот проверяет, можно ли этому сертификату доверять: не истек ли его срок, кто его выдал и так далее. Ближайшая аналогия — проверка пропуска при входе в бизнес-центр.
  4. Если все хорошо и сертификат доверенный, браузер сообщает веб-серверу, что удостоверился в его надежности.
  5. Веб-сервер подтверждает это, возвращает цифровую подпись и начинает соединение по протоколу SSL. Теперь браузер и сервер могут обмениваться информацией безопасно.

На месте пользователя и браузера может быть какой-нибудь сервис и его сервера: передача информации между сайтом и другим ресурсом происходит практически по тому же принципу.

Для чего проверяется сертификат

Сертификат служит своеобразным удостоверением или пропуском: сервер показывает, что это действительно он, и браузер расценивает его как надежный. После этого он разрешает соединение по защищенному протоколу SSL.

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

Читать также:  Контур экстерн не удалось найти учетную запись связанную с этим сертификатом

Если SSL-сертификат и секретную часть ключа украдут злоумышленники, они смогут перехватывать, расшифровывать и читать весь трафик вашего сайта. Поэтому задача владельцев ресурса — обеспечивать серверу безопасность и не допускать его взлома или утечки конфиденциальных данных.

Что происходит после проверки сертификата

Начинается подключение по защищенному протоколу SSL. Данные шифруются, а http в веб-адресе превращается в https: это означает, что соединение защищено. HTTPS — это расширение стандартного гипертекстового протокола HTTP, которое поддерживает шифрование с помощью SSL. Буква S означает Secure — защищенный.

Большинство современных сайтов сразу открываются по адресу, который начинается с https. Если вместо https ввести http, пользователя все равно перенаправят на защищенную версию. Каждый раз, когда вы переходите по ссылке с https, инициируется проверка сертификата сайта, а о ее результатах вам сообщит браузер.

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

Если SSL на сайте нет, соединение браузер расценивает как незащищенное и предупреждает об этом пользователя. В таком случае сайт доступен только через HTTP.

Виды SSL-сертификатов

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

Проверить тип сертификата на сайте можно с помощью браузера: нажать на замочек в адресной строке и выбрать вариант «Защищенное соединение» или «Безопасное подключение» в зависимости от браузера.

Вот какими бывают SSL-сертификаты.

Самоподписанные. Такой сертификат может сгенерировать любой человек на своем сервере. Но пользы от него нет: его считает доверенным только тот сервер, на котором он создан. Все остальные не знают, что за организация выдала сертификат, поэтому браузеры будут выводить пользователям предупреждения или ограничивать доступ к ресурсу. Не стоит пользоваться такими сертификатами.

С валидацией домена. Все остальные типы, которые тут перечислены, выдаются специальными организациями — центрами сертификации. Сертификационные центры, или СЦ, генерируют для сайта уникальную пару ключей и выдают сертификат. Такие сертификаты будут корректно отображаться, им доверяют браузеры, а их данные удостоверены СЦ. Но чтобы центр выдал сертификат, сначала он должен проверить того, кто к нему обратился, — так он сможет убедиться, что ресурс не мошеннический.

Разница между типами в том, что именно проверяет центр, перед тем как выдать сертификат. Самый простой вариант — проверка домена, она же Domain Validation, или DV. СЦ верифицирует, что доменное имя сайта настоящее и ресурс существует, но не связывает его с какой-либо компанией. Это бюджетный вид сертификата, более дешевый, чем другие, и он подходит для физлиц или небольших компаний.

С валидацией организации. Второй вариант — Organization Validation, или OV. В этом случае сертификационный центр проверяет не только домен, но и компанию, которой он принадлежит. По результатам проверки он удостоверяет, что компания существует. Это вариант для коммерческих сайтов, и купить такой сертификат могут только организации.

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

С расширенной валидацией. Наиболее сложный, дорогой и доверенный вид: EV, или Extended Validation. Чтобы получить такой сертификат, понадобится пройти расширенную проверку в центре сертификации, ответить на вопросы и предоставить часть документов о компании. Зато браузер будет отдельно помечать сайты с такой валидацией: знак замка будет зеленым, с подписанным названием компании и страной ее регистрации.

Этим видом пользуются корпорации, крупные сервисы, которые имеют дело с платежными данными, некоторые банки.

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

Еще есть MDC — мультидоменный сертификат, нужный для ресурсов с несколькими доменами и поддоменами. Например, у компании несколько сайтов с разными именами: она может купить отдельный сертификат для каждого или один MDC для всех трех. Существуют разные подвиды мультидоменных сертификатов, основные из них — SAN и UCC.

Как происходит выдача сертификата

Подготовка. Владелец сайта должен настроить сервер, проверить, что все данные на нем верны, и сформировать на сервере запрос на SSL-сертификат. Если он пользуется хостингом, можно обратиться к нему: тот поможет в нужных настройках и запросах.

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

Сертификационный центр потратит какое-то время на проверку домена или организации. Поэтому выдача сертификата может занимать от пары минут до недели — зависит опять же от того, какой уровень проверки выбрал владелец сайта.

Установка. После проверки и активации СЦ выдаст пару ключей: публичный отправляется по e-mail, приватный следует сохранить на компьютер, так как по почте его не присылают. Ключи понадобится установить на сервере сайта. Это можно сделать с помощью управляющей панели хостинга или CMS, если сайт ими пользуется. Также нужно будет обновить доменное имя и адреса DNS-серверов.

Примерно через сутки после этих действий все обновится и сайт будет доступен по новому адресу с HTTPS. Сертификат заработает, и трогать его, пока он активен и его данные не скомпрометированы, не надо.

Поддержка. Сертификат имеет ограниченный срок действия. Когда он истечет, сертификат нужно будет перевыпустить, иначе браузеры начнут расценивать сайт как небезопасный и выдавать пользователям предупреждение. Некоторые браузеры могут и вовсе блокировать доступ к нему, так как не смогут обеспечить безопасность.

Возможный срок действия сертификата — до 2 лет и 3 месяцев. В будущем максимальный допустимый срок может еще сократиться. Причина такого ограничения — данные о компании и сайте постоянно меняются, и, чтобы поддерживать сертификат актуальным, эти сведения надо обновлять и в нем.

Нужно ли устанавливать SSL-сертификат

Сайт будет работать и без SSL: протокол нужен только для шифрования соединения. Для работоспособности веб-ресурса SSL необязателен — но очень желателен, и вот почему.

  • Современные браузеры заботятся о безопасности пользователя. Если сайт, на который заходит человек, не защищен и на нем нет HTTPS, браузер выдаст пользователю предупреждение о небезопасном соединении. Даже если SSL есть, но ему нельзя доверять или он просрочен, браузер может ограничить доступ пользователя к этому сайту как к подозрительному.
  • Поисковые системы тоже обращают внимание на наличие защищенного протокола. Без SSL сайту меньше доверяют, поэтому не будут выставлять ему высокий рейтинг и показывать на первых страницах выдачи. Из-за этого уменьшится поток пользователей — многие из них находят сайты как раз в поиске.
  • Но самое главное: незащищенное соединение — это риск утечки информации о пользователях, в том числе их персональных данных. За утечку можно понести ответственность, к тому же это некорректно по отношению к пользователям.

Обязательно ли SSL должен быть платным

В большинстве случаев — нет, не обязательно. Существуют сервисы, которые помогают получить валидный сертификат бесплатно. Самый известный из них — Let’s Encrypt. Это некоммерческий центр сертификации, который выдает SSL с валидацией на уровне домена. Он считается не таким доверенным, но для некоммерческих и информационных ресурсов подходит.

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

Faq ltd

Всё, что нужно знать о безопасности сайтов и SSL-сертификатах

  • SSL-Сертификаты Comodo
  • EV SSL
  • Wildcard SSL
  • UCC-сертификаты
  • Instant SSL
  • Essential SSL
  • Positive SSL
  • Multidomain SSL
  • Code Signing
  • AMT SSL
  • Тип SSL
  • DV SSL
  • OV SSL
  • EV SSL
  • Code Signing
  • Code Signing EV
  • Wildcard
  • SMIME
  • Банкам
  • Интернет-магазинам
  • SSL-бренды
  • sectigo
  • thawte
  • rapidssl
  • Быстрое меню
  • Главная
  • SSL Бренды
  • MPKI
  • Партнерам
  • Помощь
  • Генератор CSR
  • Проверка SSL
  • Отзывы
  • Новости
  • О компании
  • Способы оплаты
  • Контакты
  • info@leaderssl.ru
  • 8 (495) 225-2235
  • 8 (800) 555-5737
  • (по России бесплатно)
  • 115419, Москва,
  • ул. Орджоникидзе, д. 11, стр. 40, оф. 2
  • Схема проезда
  • Отправить жалобу

  • SSL-Сертификаты Comodo
  • EV SSL
  • Wildcard SSL
  • UCC-сертификаты
  • Instant SSL
  • Essential SSL
  • Positive SSL
  • Multidomain SSL
  • Code Signing
  • AMT SSL
  • Тип SSL
  • DV SSL
  • OV SSL
  • EV SSL
  • Code Signing
  • Code Signing EV
  • Wildcard
  • SMIME
  • Банкам
  • Интернет-магазинам

Мы являемся официальным стратегическим партнёром:

Comodo
Sectigo
Digicert
Thawte
Geotrust
Rapidssl
Globalsign

Как проверить есть ли сертификат безопасности на сайте

«Ничто не вечно под луной»
Уильям Шекспир

Если вы отвечаете за работоспособность сайтов, то эта статья поможет вам и вашим клиентам своевременно продлить срок регистрации доменов и вовремя обновить SSL-сертификаты. 

Конечно, владельцы сайтов получат по электронной почте извещения о необходимости продления услуг, однако их легко не заметить или проигнорировать. И если просроченный сертификат можно заменить бесплатным Let’s Encrypt за несколько минут, то на восстановление работоспособности домена, у которого снято делегирование, может уйти больше суток. Все это время сайт не будет работать, что принесет вашим клиентам убытки.

Кроме того, после окончания срока регистрации и освобождения доменное имя может быть зарегистрировано кем угодно. В результате клиенту придется либо выкупать домен обратно, либо регистрировать и продвигать новый домен.

На сервисе SAAS интернет-магазинов нужно контролировать сотни доменов. Дополнительно задача контроля усложняется тем обстоятельством, что все время открываются новые сайты, а старые могут закрываться. Поэтому тут не обойтись без автоматизации, которую можно реализовать при помощи Zabbix.

Как и предыдущих статьях нашей серии про Zabbix, мы сначала рассмотрим ручные методы контроля, а затем перейдем к описанию шаблона и скриптов контроля для Zabbix.

Ручной контроль срока действия сертификата SSL

Срок действия сертификата можно проверить в браузере, а также в командной строке ОС. Рассмотрим оба способа.

Проверка срока действия сертификата SSL в браузере

Любой пользователь может узнать срок действия сертификата сайта, открытого в браузере. Для этого в Chrome, например, ему достаточно щелкнуть мышкой символ замка в адресной строке браузера, расположенный слева от URL сайта, выбрать строку Безопасное подключение и щелкнуть строку Действительный сертификат. После этого на экране появится окно с информацией о сертификате, подключенном к сайту (рис. 1).

Рис. 1. Информация о сертификате, подключенном к сайту
Рис. 1. Информация о сертификате, подключенном к сайту

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

Читать также:  Сертификат соответствия на жидкое мыло антибактериальное

Аналогичный способ посмотреть срок действия сертификата есть и в других браузерах. В Firefox, например, нужно щелкнуть символ замка слева от URL сайта, выбрать строку Защищенное соединение, а затем выбрать строку Подробнее. Далее нужно щелкнуть кнопку Посмотреть сертификат. В блоке Срок действия вы найдете информацию о диапазоне дат, в пределах которого сертификат будет действительным. 

Аналогичные способы проверки сертификатов есть и в браузерах смартфонов.

Проверка срока действия сертификата SSL в командной строке

В интернете нетрудно найти способ проверки сроков действия сертификата, установленного на сайте, из командной строки с помощью программы openssl.

Например, следующая команда покажет в консоли диапазоны дат, в пределах которых будет действителен сертификат сайта firstvds.ru, использующего протокол https на порту 443:

$ echo | openssl s_client -servername firstvds.ru -connect firstvds.ru:443 2>/dev/null | openssl x509 -noout -dates 2>/dev/null
notBefore=Jun 29 00:00:00 2020 GMT
notAfter=Aug 28 12:00:00 2022 GMT

Сертификат действителен с даты notBefore и до даты notAfter.

Если вас интересует только дата, до которой будет работать сертификат, используйте такую команду:

$ echo | openssl s_client -servername firstvds.ru -connect firstvds.ru:443 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2
Aug 28 12:00:00 2022 GMT

Чтобы организовать несложную проверку сертификатов из командной строки, используйте скрипт get_ssl_info.sh, доступный на Github:

#!/bin/sh
SERVER=$1
PORT=$2;
EXPIRE_DATE=`echo | openssl s_client -servername $SERVER -connect $SERVER:$PORT 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2`
echo $EXPIRE_DATE

При запуске передайте ему доменное имя сайта и номер порта:

$ bash get_ssl_info.sh firstvds.ru 443
Aug 28 12:00:00 2022 GMT

Ручной контроль срока окончания регистрации доменного имени

Узнать, до какой даты оплачена регистрация доменного имени, и когда доменное имя будет освобождено, можно с помощью команды whois. Просто передайте этой команде проверяемое доменное имя:

$ whois firstvds.ru
% By submitting a query to TCI's Whois Service
% you agree to abide by the following terms of use:
% https://www.tcinet.ru/documents/whois.pdf (in Russian)

domain:        FIRSTVDS.RU
nserver:       ns-1179.awsdns-19.org.
nserver:       ns-1806.awsdns-33.co.uk.
nserver:       ns-413.awsdns-51.com.
nserver:       ns-547.awsdns-04.net.
state:         REGISTERED, DELEGATED, VERIFIED
org:           CJSC "The First"
registrar:     REGTIME-RU
admin-contact: https://whois.webnames.ru
created:       2002-08-06T20:00:00Z
paid-till:     2023-08-07T21:00:00Z
free-date:     2023-09-08
source:        TCI
Last updated on 2022-07-29T07:46:32Z

Параметр paid-till содержит дату и время окончания регистрации доменного имени, а параметр free-date — дату его освобождения. 

Мониторинг с помощью Zabbix

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

Для получения списка доменных имен активных интернет-магазинов мы используем вызов внутренней CRM сервиса SAAS. Далее, на основе этого списка с помощью программного интерфейса Zabbix API создается или редактируется список элементов данных Items, содержащих информацию для мониторинга, а также список соответствующих триггеров.

Мы не можем опубликовать API проприетарной системы CRM сервиса SAAS, но вам в любом случае при постановке аналогичной задачи придется выполнять собственную интеграцию со своей CRM. Мы подскажем, где это нужно сделать в опубликованном скрипте мониторинга.

Что же касается описания Zabbix API, то для версии 6.2 вы найдете ее здесь. На русском языке описание API доступно для версии 6.0 вот тут.

Программа domain_monitor

Программа domain_monitor.pl выполняет все описанные выше функции по динамическому формированию списка элементов данных и триггеров в соответствии со списком работающих интернет-магазинов. Далее она получает информацию обо всех контролируемых доменах и сертификатах, а потом отправляет ее на сервер Zabbix.

Загрузка файла конфигурации

Сразу после запуска программа загружает файл конфигурации, содержащий реквизиты доступа к Zabbix API:

use File::Slurp;
…
my $zbx = LoadFile('/home/frolov/zabbix_domain_monitoring/config/zabbix-server.yaml');
my $zabbix_server_ip = $zbx->{ zabbix_server_ip };
Здесь функции LoadFile нужно передать полный путь к файлу конфигурации в формате YAML следующего вида:
zabbix_server_url: http://zabbix.domain.ru/api_jsonrpc.php
zabbix_server_login: Admin
zabbix_server_password: *********
zabbix_server_ip: ***.***.***.***

В параметре zabbix_server_url укажите URL для доступа к вашему серверу Zabbix для отправки HTTP POST запросов к файлу api_jsonrpc.php.

И, наконец, параметр zabbix_server_ip задает адрес IP вашего сервера Zabbix.

Подключение к Zabbix API

Загрузив файл конфигурации, программа domain_monitor.pl открывает соединение с сервером Zabbix через API с помощью функции zabbix_open:

my $z = zabbix_open($zbx);

Функции для обращения к Zabbix API будут отписаны ниже в разделе «Функции для работы с API Zabbix» этой статьи.

Получение информации о доменах работающих интернет-магазинов

На следующем шаге программа domain_monitor.pl получает из встроенной CRM ссылку на хэш, содержащий информацию обо всех доменах интернет-магазинов, работающих на момент запуска программы на SAAS-сервисе (открытых сайтов): 

$all_sites = get_opened_domains_from_billing();

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

Получение информации о контролируемых доменах от Zabbix

Получив хэш доменов работающих интернет-магазинов, программа формирует хэш всех доменов, которые на момент запуска уже контролируются при помощи Zabbix. Для этого вызывается функция get_all_monitored_domains:

my $domains_group_name = 'Shop2YOU Domains';
my $all_monitored_domains = get_all_monitored_domains($z, $domains_group_name);

Для работы с доменными именами сервиса на сервере Zabbix была создана группа «Shop2YOU Domains». Вам нужно будет создать группу, например, с названием вашего сервиса или компании.

Соединение с Zabbix API передается функции get_all_monitored_domains в качестве первого параметра, а имя группы —в качестве второго параметра.

Таким образом, в переменной all_sites хранится ссылка на хэш со всеми доменами, которые работают, а в переменной all_monitored_domains — с доменами, которые находятся на мониторинге. Эти данные загружены на момент запуска программы domain_monitor.pl.

Актуализация контролируемых доменов

Теперь нужно актуализировать в Zabbix список доменов, добавив туда отсутствующие с момента предыдущей проверки элементы Items и триггеры, а также удалив ненужные элементы для интернет-магазинов, которые прекратили свою работу.

Первая из этих задач решается функцией create_missing_domain_in_zabbix, а вторая — функцией delete_closed_domains_from_zabbix.

Функции create_missing_domain_in_zabbix нужно передать ссылку на Zabbix API, имя группы, имя шаблона, который применяется для мониторинга доменов, ссылку на хэш с работающими доменами all_sites, а также ссылку на контролируемые домены all_monitored_domains:

my $domains_template_name = 'Shop2YOU Domains Monitor';

create_missing_domain_in_zabbix($z, $domains_group_name, $domains_template_name, $all_sites, $all_monitored_domains);

Функции delete_closed_domains_from_zabbix передаются те же самые параметры:

delete_closed_domains_from_zabbix($z, $domains_group_name, $domains_template_name, $all_sites, $all_monitored_domains);

Отправка текущей информации о доменах на сервер zabbix

Теперь, когда список контролируемых при помощи Zabbix доменов приведен в соответствие списку работающих сайтов из CRM сервиса SAAS, можно отправлять данные с текущей информацией о доменах на сервер Zabbix.

Эта операция выполняется в цикле по хэшу со всеми работающими доменами all_sites:

foreach my $key (keys %$all_sites)
{
  my $zkey;
  my $zvalue;
  my $trap_cmd;
  if($key)
  {
    my $host_name = $all_sites->{$key}->{domain_name};

    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'days_before_domain_expire', $all_sites->{$key}->{ 'days_before_domain_expire' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'days_before_ssl_expire', $all_sites->{$key}->{ 'days_before_ssl_expire' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'domain_ssl_matches', $all_sites->{$key}->{ 'domain_ssl_matches' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'domain_has_ssl', $all_sites->{$key}->{ 'domain_has_ssl' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'whois_ok', $all_sites->{$key}->{ 'whois_ok' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'a_found', $all_sites->{$key}->{ 'a_found' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'dns_a', $all_sites->{$key}->{ 'a' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'mx_found', $all_sites->{$key}->{ 'mx_found' });
    send_value_to_zabbix($zabbix_sender, $zabbix_server_ip, $host_name, 'dns_mx', $all_sites->{$key}->{ 'mx' });
  }
}

Отправка данных выполняется при помощи функции send_value_to_zabbix. Как и в предыдущей статье нашей серии, для отправки запускается программа zabbix_sender. Однако здесь каждый параметр отправляется отдельно:

sub send_value_to_zabbix($$$$$)
{
  my $zabbix_sender=shift @;
  my $zabbix_server_ip=shift @;
  my $host_name=shift @;
  my $zkey=shift @;
  my $zvalue=shift @;

  my $trap_cmd = $zabbix_sender.' -z '.$zabbix_server_ip.' -s '.$host_name.' -k '.$zkey.' -o "'.$zvalue.'"';
  my @trapout = (); @trapout = split /\n/, `$trap_cmd`;
}

Через параметр -z программе zabbix_sender передается адрес IP сервера Zabbix, через параметр -s передается имя хоста, которое в нашем случае соответствует проверяемому домену. Параметры -k и -o используются, соответственно, для передачи имени ключа и значения.

Изучив приведенный выше цикл по хэшу, вы узнаете, какая информация о доменах попадает на сервер:

  • days_before_domain_expire — количество дней до завершения регистрации домена;

  • days_before_ssl_expire — количество дней до завершения периода действия сертификата;

  • domain_ssl_matches — сертификат на сайте соответствует доменному имени сайта;

  • domain_has_ssl — к сайту подключен сертификат SSL;

  • whois_ok — команда whois вернула правильную информацию о домене;

  • a_found — в DNS домена обнаружена запись A;

  • a — содержимое записи A для домена;

  • mx_found — в DNS домена обнаружена запись MX;

  • mx — содержимое записи MX для домена

Функция get_domain_info

Для организации собственной системы мониторинга доменов вам пригодится функция get_domain_info, которая вызывается функцией get_opened_domains_from_billing при получении хэша с данными о доменах открытых интернет-магазинов.

Функции get_domain_info нужно передать в качестве первого параметра доменное имя, а в качестве второго — порт, на котором работает проверяемый сайт (обычно 443). Функция записывает полученные данные в хэш domain_info и возвращает этот хэш вызывающей функции (в нашем случае это get_opened_domains_from_billing).

Полный код функции вы найдете на Github.

Прежде всего, функция get_domain_info записывает в хэш доменное имя, для которого она будет определять текущие параметры:

$domain_info->{ domain_name } = $domain_name;

Получение данных о сертификате SSL

На следующем шаге функция определяет, подключен ли к сайту с этим доменным именем сертификат SSL. Для этого анализируются результаты выполнения следующей команды:

my $cmd = 'openssl s_client -servername '.$domain_name.' -connect '.$domain_name.':'.$ssl_port.' </dev/null 2>/dev/null';
my @rqout = ();
@rqout = split /\n/, `$cmd`;
if(scalar(@rqout) == 0)
{
  $domain_info->{ domain_has_ssl }=0;
}
else
{
  $domain_info->{ domain_has_ssl }=1;
  …
}

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

Чтобы убедиться в соответствии доменного сертификата имени, на который выписан полученный сертификат, проверяем, упоминается ли проверяемое доменное имя в результатах выдачи следующей команды:

my $cmd_subj='echo | openssl s_client -servername '.$domain_name.' -connect '.$domain_name.':'.$ssl_port.' 2>/dev/null | openssl x509 -noout -subject';
my @subjout = ();
@subjout = split /\n/, `$cmd_subj`;
if(scalar(@subjout) != 0)
{
  my $cn=@subjout[0];
  if($cn=~/$domain_name/)
  {
    $domain_info->{ domain_ssl_matches }=1;
  }
  else
  {
    $domain_info->{ domain_ssl_matches }=0;
  }
}

Если сертификат соответствует доменному имени, записываем в хэш для ключа domain_ssl_matches значение 1, если нет — значение 0. Несоответствие доменного имени сертификату в данном случае является поводом проверить сертификат данного сайта и настройку Web-сервера.

Для валидного сертификата функция get_domain_info получает количество дней до завершения его срока действия:

$cmd = 'echo | openssl s_client -servername '.$domain_name.' -connect '.$domain_name.':'.$ssl_port." 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2";
my @rqout2 = ();
@rqout2 = split /\n/, `$cmd`;
my $expires_data = str2time(@rqout2[0]);
my $current_data = time();
my $days_before_expire = int(($expires_data - $current_data) / 86400);
if($days_before_expire <= 0) { $days_before_expire = 0;}
  $domain_info->{ days_before_ssl_expire }=$days_before_expire;

Полученное значение записывается в хэш по ключу days_before_ssl_expire.

Определение даты окончания регистрации доменного имени

Для того чтобы получить данные DNS для домена, мы используем функцию parse_whois пакета Net::Whois::Parser: 

my $info = parse_whois( domain => $domain_name );

my $domain_expiration_date='';
$domain_info->{ whois_ok } = 1;
if($info->{ paid_till })
{
  $domain_expiration_date = $info->{ paid_till };
}
elsif ( $info->{ expiration_date })
{
  $domain_expiration_date = $info->{ expiration_date };
}
elsif ( $info->{ registry_expiry_date })
{
  $domain_expiration_date = $info->{ registry_expiry_date };
}
elsif ( $info->{ 'Registry Expiry Date' })
{
  $domain_expiration_date = $info->{ 'Registry Expiry Date' };
}
else
{
  $domain_info->{ whois_ok } = 0;
}

Прежде всего, функция get_domain_info пытается отыскать в результатах выдачи parse_whois дату завершения регистрации доменного имени. В зависимости от сервера DNS эта дата может обозначаться в выдаче whois по-разному: «paid_till», «expiration_date», «registry_expiry_date» и «Registry Expiry Date». Не исключено, что бывают и другие варианты.

Читать также:  Если у вас есть сертификат о прививках, нужно ли вам сдавать тест на коронавирус?

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

Но если дата найдена, то она преобразуется в количество дней до окончания регистрации и записывается в хэш по ключу days_before_domain_expire:

my $expires_data = str2time($domain_expiration_date);
my $current_data = time();
my $days_before_expire = int(($expires_data - $current_data) / 86400);
$domain_info->{ days_before_domain_expire } = $days_before_expire;
if($days_before_expire < 0)
{
  $domain_info->{ whois_ok } = 0;
}

Получение записей A и MX из DNS

Следующий фрагмент функции get_domain_info используется для определения наличия в DNS записей A и MX для исследуемого домена с помощью функции get_domain_info_from_dns:

my $dns_info=get_domain_info_from_dns($domain_name);
if($dns_info->{ a_found })
{
  my $a_str="";
  my $a_counter=0;
  my $dns_a_ref = $dns_info->{ address };
  foreach my $dns_a (@$dns_a_ref)
  {
    if($a_counter > 0)
    {
      $a_str = $a_str.', '.$dns_a;
    }
    else
    {
      $a_str = $a_str.$dns_a;
    }
    $a_counter++;
  }
  $domain_info->{ a_found } = 1;
  $domain_info->{ a } = $a_str;
}
else
{
  $domain_info->{ a_found } = 0;
}
if($dns_info->{ mx_found })
{
  my $mx_str="";
  my $mx_counter=0;
  my $mx_ref = $dns_info->{ mx };
  foreach my $record (@$mx_ref)
  {
    my $pr = $record->preference;
    my $ex = $record->exchange;
    if($mx_counter > 0)
    {
      $mx_str = $mx_str.', '.$pr.' '.$ex;
    }
    else
    {
      $mx_str = $mx_str.$pr.' '.$ex;
    }
    $mx_counter++;
  }
  $domain_info->{ mx_found } = 1;
  $domain_info->{ mx } = $mx_str;
}
else
{
  $domain_info->{ mx_found } = 0;
}

Действия, выполняемые этим фрагментом кода, понятны и без дополнительных объяснений. Что же касается функции get_domain_info_from_dns, то она получает данные домена из DSN с помощью модуля Net::DNS::Resolver:

sub get_domain_info_from_dns($)
{
  my $domain = shift @_;
  my $res   = Net::DNS::Resolver->new;
  my $dinfo = {};
  my @mx = mx($res, $domain);
  if(@mx != 0)
  {
    $dinfo->{ mx_found } = 1;
    $dinfo->{ mx } = \@mx;
  }
  else
  {
    $dinfo->{ mx_found } = 0;
    $dinfo->{ mx_error } = $res->errorstring;
  }
  my $addr=();
  my $rr = {};
  my $query = {};
  $dinfo->{ a_found } = 0;
  $query = $res->search($domain);
  if ($query)
  {
    foreach $rr ($query->answer)
    {
       next unless ($rr->type eq "A");
       push @$addr, $rr->address;
       $dinfo->{ a_found } = 1;
    }
  }
  $dinfo->{ address } = $addr; 
  return($dinfo);
}

Функции для работы с Zabbix API

Для работы с Zabbix API наша программа использует модуль Zabbix::Tiny: https://metacpan.org/pod/Zabbix::Tiny или https://github.com/whosgonna/Zabbix-Tiny.pm.

По адресу https://www.zabbix.com/ru/integrations?cat=api есть решения для интеграции на разных языках программирования.

zabbix_open

Функция zabbix_open вызывает конструктор модуля Zabbix::Tiny:

sub zabbix_open($)
{
  my $z = shift @_;
  my $zabbix = Zabbix::Tiny->new(
     server   => $z->{ zabbix_server_url },
     password => $z->{ zabbix_server_password },
     user     => $z->{ zabbix_server_login },
     ip     => $z->{ zabbix_server_ip },
 );
  return $zabbix;
}

get_group_id

Функция get_group_id получает от Zabbix API идентификатор группы по ее имени:

sub get_group_id($$)
{
  my $z = shift @_;
  my $group_name = shift @_;
  my $params = {
    output => [qw(groupid name)],
    filter => { name => [$group_name]  }
  };
  my $result = $z->do(
   'hostgroup.get',
   $params
  );
  return $result->[0]->{ groupid };
}

get_group_hosts

Функция get_group_hosts возвращает хосты для группы с заданным именем и вызывается функцией get_all_monitored_domains: 

sub get_group_hosts($$)
{
  my $z = shift @_;
  my $group_name = shift @_;

  my $gid = get_group_id($z, $group_name);
  my $params = {
    output => [qw(hostid name host)],
    groupids => [$gid],
  };
  my $result = $z->do(
   'host.get',
   $params
  );
  return $result;
}

В нашем случае эти хосты представляют собой доменные имена, для которых нужно контролировать сертификаты SSL.

get_template_id

Чтобы по имени шаблона получить его идентификатор, используется функция get_template_id:

sub get_template_id($$)
{
  my $z = shift @_;
  my $template_name = shift @_;
  my $params = {
    output => [qw(templateid name)],
    filter => { name => [$template_name]  }
  };
  my $result = $z->do(
   'template.get',
   $params
  );
  return $result->[0]->{ templateid };
}

create_host

Для мониторинга каждого доменного имени программа domain_monitor.pl создает отдельный хост, вызывая для этого функцию create_host:

sub create_host($$$$$)
{
  my $z = shift @_;
  my $host_name = shift @_;
  my $name = shift @_;
  my $group_name = shift @_;
  my $template_name = shift @_;

  my $gid = get_group_id($z, $group_name);
  my $template_id = get_template_id($z, $template_name);

  my $params = {
    host => $host_name,
    name => $name,
    interfaces => [{type => 1, main => 1, useip => 1, ip => '127.0.0.1', dns => "", port => '443'}],
    groups => [{ groupid => $gid }],
    templates => [{ templateid => $template_id }],
  };
  my $result = $z->do(
   'host.create',
   $params
  );
  return $result;
}

В качестве параметров этой функции передаются соединение с сервером Zabbix, имя хоста (то есть имя контролируемого домена), имя группы и шаблона.

get_host_id

Функция get_host_id возвращает идентификатор хоста, заданного своим именем:

sub get_host_id($$)
{
  my $z = shift @_;
  my $host_name = shift @_;
  my $params = {
    output => [qw(hostid name)],
    filter => { name => [$host_name]  }
  };
  my $result = $z->do(
   'host.get',
   $params
  );
  return $result->[0]->{ hostid };
}

delete_host

Если интернет-магазин закрылся, то его сайт нужно удалить из мониторинга. Функция delete_host удаляет хост по его идентификатору:

sub delete_host($$)
{
  my $z = shift @_;
  my $hostid = shift @_;
  my $params = [ $hostid ];
  my $result = $z->do(
   'host.delete',
   $params
  );
  return $result;
}

get_all_monitored_domains

Чтобы получить все домены, которые находятся на мониторинге, программа domain_monitor.pl вызывает функцию get_all_monitored_domains. Она возвращает все хосты для группы с заданным именем:

sub get_all_monitored_domains($$)
{
  my $z = shift @_;
  my $group_name = shift @_;
  return get_group_hosts($z, $group_name);
}

create_missing_domain_in_zabbix

Функция create_missing_domain_in_zabbix добавляет хосты в мониторинг, пользуясь для этого ссылкой на хэш hosts и функцией create_host:

sub create_missing_domain_in_zabbix($$$$$)
{
  my $z=shift @_;
  my $domains_group_name=shift @_;
  my $domains_template_name=shift @_;
  my $domains_from_billing=shift @_; # from Billing
  my $domains_from_zabbix=shift @_; # from Zabbix
  foreach my $key (keys %$domains_from_billing)
  {
    my $host_name;
    my $name;
    if($key)
    {
      $host_name = $domains_from_billing->{$key}->{domain_name};
      my $pcode_used = $domains_from_billing->{$key}->{punycode_used};
      if($pcode_used)
      {
        $name = $domains_from_billing->{$key}->{domain_name_from_billing};
      }
      else
      {
        $name = $domains_from_billing->{$key}->{domain_name};
      }
      my ($found, $zbx_hostid) = find_in_monitored_domains($host_name, $domains_from_zabbix);
      if($found == 0)
      {
        print("$name to be CREATED \n");
        Encode::_utf8_on($name);
        my $hsts = create_host($z, $host_name, $name, $domains_group_name, $domains_template_name);
      }
    }
  }
}

При этом учитывается, что имена доменов могут быть в кодировке Punyсode.

delete_closed_domains_from_zabbix

И, наконец, функция delete_closed_domains_from_zabbix удаляет из мониторинга хосты, которые соответствуют сайтам прекративших свою работу интернет-магазинов:

sub delete_closed_domains_from_zabbix($$$$$)
{
  my $z=shift @_;
  my $domains_group_name=shift @_;
  my $domains_template_name=shift @_;
  my $domains_from_billing=shift @_; # from Billing
  my $domains_from_zabbix=shift @_; # from Zabbix
  foreach my $arg (@$domains_from_zabbix)
  {
    my $cdomain = $arg->{host};
    my $zbx_hostid = $arg->{hostid};
    my $found_in_billing=find_domain_in_billing($cdomain, $domains_from_billing);
    if($found_in_billing == 0)
    {
      print("$cdomain NOT found in Billing, to be REMOVED. zbx_hostid = $zbx_hostid \n");
      my $rc = delete_host($z, $zbx_hostid);
    }
  }
}

Вам нужно будет самостоятельно реализовать функцию find_domain_in_billing для поиска таких сайтов в вашей CRM.

Шаблон мониторинга доменов

Шаблон мониторинга доменных имен и сертификатов вы можете загрузить из Github.

В этом шаблоне определены ключи, о которых мы говорили в нашей статье (рис. 2).

Рис. 2. Ключи в шаблоне мониторинга доменных имен и сертификатов
Рис. 2. Ключи в шаблоне мониторинга доменных имен и сертификатов

Триггеры показаны на рис. 3.

Рис. 3. Триггеры для мониторинга данных доменов и сертификатов
Рис. 3. Триггеры для мониторинга данных доменов и сертификатов

Здесь мы назначили среднюю серьезность только для триггеров Domain registration expires in 30 days (регистрация домена закончится через 30 дней) и SSL expired in 7 days (срок действия сертификата истекает через 7 дней). Остальные триггеры только для информации.

Вы, конечно, можете настроить эти триггеры по своему усмотрению.

Запуск задания crontab

Для запуска программы проверки сроков регистрации доменных имен и срока действия сертификатов SSL подготовьте задание crontab, например, такое:

34 3 * * *      /usr/bin/perl /home/frolov/zabbix_domain_monitoring/domain_monitor.pl

Здесь проверка запускается каждый день ночью, в 3 часа 34 минуты.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

CSR

Если вы работаете с многочисленными SSL-сертификатами, вы можете столкнуться
со следующей проблемой: непонятно, к какому сертификату относится тот или иной
приватный ключ. То же самое характерно и для CSR – не всегда понятно, какой CSR соответствует тому или иному приватному
ключу.

Также вы можете столкнуться со следующей ошибкой: «Private
Key and the Certificate do not match». Могут появляться и другие ошибки при
попытке установки сертификата на сервер.

Примечание: SSL-сертификат
может быть установлен на сервер ТОЛЬКО с тем приватным ключом, который был
сгенерирован во время соответствующего CSR запроса при заказе сертификата. Если приватный ключ не будет
соответствовать сертификату, то в таком случае вам не удастся установить
сертификат на сервер. Панель управления будет выдавать ошибку о несоответствии
пары ключа/сертификата.

Это правило было установлено индустрией SSL для
обеспечения безопасности и предотвращения выпуска поддельных сертификатов.

Как выполнить проверку соответствия SSL-сертификатов их CSR и приватным
ключам

Проверка соответствия SSL-сертификатов их CSR и приватным ключам может быть легко
выполнена с помощью команд OpenSSL.

Давайте выведем значения модулей (модули – внутренние
данные, хранящиеся в CSR,
SSL-сертификате и
приватном ключе) для приватного ключа, CSR и SSL-сертификата, после чего конвертируем их в хэши md5, чтобы
можно было провести их сравнение.

Команда для вывода модуля SSL-сертификата:

Команда для вывода модуля приватного ключа:

Команда для вывода модуля CSR:

Если полученные значения модулей совпадают, следовательно, сертификат,
приватный ключ и CSR соответствуют друг другу.

Для чего нужен SSL-сертификат?

SSL-сертификат — это цифровая подпись сайта, необходимая для того, чтобы работал протокол защищенной передачи данных через интернет. По сути, это набор файлов, которые установлены на сервер. Информация, передающаяся между сайтом и пользователем шифруется таким образом, что провайдер или администратор Wi-Fi сети, через которую подключается пользователь, не могут получить доступ к данным.

Сертификат содержит следующую информацию:

  • Доменное имя;
  • Местоположение и контакты владельца (не всегда);
  • Срок действия сертификата;
  • Данные компании, выдавшей сертификат.

Зачем проверять SSL-сертификат?

Регулярная проверка SSL нужна, чтобы убедиться, что ваш сайт доступен пользователям и не блокируется браузером или антивирусом.

Наличие сертификата влияет на продвижение в поисковых сетях. Например, Google понижает незащищенные сайты в выдаче, так что можно считать, что это один из факторов ранжирования. Браузер Chrome в случае попадание на сайт без SSL сообщает, что сайт небезопасен, это может отпугнуть пользователей. Соответственно, если вы не установите или не обновите вовремя свой сертификат, трафик сайта может упасть и доверие пользователей снизится.

Какие самые частые ошибки?

Ошибка в установке сертификата

Возможно, не хватает корневого сертификата или допущены другие ошибки при установке. О том, как перейти на HTTPS, читайте в нашей статье.

Неправильно указанное время на устройстве

Если на устройстве, с которого пользователь заходит на сайт, дата и время выставлены неправильно, браузер может выдать ошибку, посчитав сертификат просроченным. Нужно настроить верные дату и время.

На сайте установлен SSL-сертификат, но браузер сообщает, что к нему нет доверия

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

У вас установлен самоподписанный сертификат

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

Антивирус блокирует сайт

Антивирусная программа может посчитать сайт опасным. Если вы доверяете сайту, добавьте его в список исключений антивируса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *