У меня есть несколько SSL-сертификатов, и я хотел бы получать уведомления об истечении срока действия сертификата.
Моя идея - создать cronjob, который выполняет простую команду каждый день.
Я знаю, что openssl
команду в Linux можно использовать для отображения информации о сертификате удаленного сервера, то есть:
openssl s_client -connect www.google.com:443
Но я не вижу срока годности в этом выводе. Кроме того, я должен завершить эту команду с CTRL+ c.
Как проверить срок действия удаленного сертификата из сценария (желательно с использованием openssl
) и сделать его в «пакетном режиме», чтобы он запускался автоматически без участия пользователя?
-servername www.google.com
серверами с поддержкой SNI. Чтобы избежать необходимости завершения, отправьте на него / dev / null< /dev/null
Ответы:
Теперь ваша команда ожидает http-запрос, такой как,
GET index.php
например. Используйте это вместо:true
: просто не будет вводить, после чего следует eof, так что openssl завершает работу после подключения.openssl ...
: команда из твоего вопроса2>/dev/null
: вывод ошибок будет игнорироваться.openssl x509
: активирует управление данными сертификата X.509.-noout
: Подавляет весь вывод сертификата-checkend 0
: проверьте, не истек ли срок действия сертификата в следующие 0 секундисточник
-checkend
намного проще, чем сценарий, который я нашел, который делал арифметику дат!Он действительно дает вам сертификат, но не декодирует его. Так как это будет необходимо, если вы хотите дату, вы не видите ее. Итак, вам нужно передать его в
x509
приложение OpenSSL для декодирования сертификата:Это даст вам полный декодированный сертификат на stdout, включая даты его действия.
источник
Если вам нужно проверить дату истечения срока действия, благодаря этому сообщению в блоге , нашли способ найти эту информацию с другой соответствующей информацией с помощью одного звонка:
Вывод включает эмитента, субъект (которому выдан сертификат), дату выдачи и, наконец, дату истечения срока действия :
источник