Проверка сертификата сервера из bash

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

Что нам потребуется

Для проверки будем использовать, естественно, Linux. Именно на нем чаще всего стоят системы мониторинга, такие как Zabbix и Nagios. Кроме сервера с Linux’ом нам еще кое-что потребуется. Прежде всего OpenSSL (чем свежее, тем лучше), и, конечно же, bash, на котором мы и будем писать скрипт. Этот скрипт будет полезен как при ручной проверке, так и при автоматизированных проверках.

Проверка сертификата сервера из bash

Вот как будет организована проверка. Мы открываем SSL-соединение с сервером, получаем сертификат, передаем его на обработку OpenSSL (openssl x509), получая таким образом информацию по полям, а если нам нужно посчитать, сколько времени осталось до истечения срока действия сертификата, будет использовать отдельный параметр, который нам просто выведет количество дней в формате «N days».

Вот сам скрипт с комментариями:

Что можно улучшить

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

Проверка сертификата сервера из bash: 6 комментариев

  1. Aleksey Antciferov

    Добавь сюда подписывание exe из Linux. На удивление очень популярный запрос
    osslsigntool

  2. Роман

    Спасибо, очень помогло. Искал как перевести дату в unix формат, нашел, плюс еще сравнение с текущей датой.

  3. Taras

    Error opening Certificate —
    140339159390112:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘-‘,’r’)
    140339159390112:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
    unable to load certificate

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

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