Если у меня есть настоящий файл и оболочка Bash в Mac или Linux, как я могу запросить файл сертификата, когда он истечет? Не веб-сайт, а фактически сам файл сертификата, при условии, что у меня есть файлы csr, key, pem и chain.
327
С openssl
:
openssl x509 -enddate -noout -in file.pem
Вывод находится в форме:
notAfter=Nov 3 22:23:50 2014 GMT
Также см . Ответ MikeW о том, как легко проверить, истек ли срок действия сертификата или нет, или будет ли он в течение определенного периода времени, не анализируя вышеуказанную дату.
-startdate
и-enddate
, встроенные вx509
утилиту. Они спасут васgrep
.Если вы просто хотите узнать, истек ли срок действия сертификата (или будет ли он сделан в течение следующих N секунд),
-checkend <seconds>
опцияopenssl x509
сообщит вам:Это избавляет вас от необходимости сравнивать дату / время самостоятельно.
openssl
вернет код0
завершения (ноль), если срок действия сертификата не истек, и не будет выполняться в течение следующих 86400 секунд, как в примере выше. Если срок действия сертификата истек или он уже был сделан - или какая-либо другая ошибка, например, неверный / несуществующий файл - возвращается код возврата1
.(Конечно, предполагается, что время / дата установлены правильно)
источник
-noout
опцию, чтобы увидеть полезное сообщение, используя одну команду без дополнительной логики. Например,openssl x509 -checkend 0 -in file.pem
выдаст выходные данные «Срок действия сертификата истекает» или «Срок действия сертификата не истечет», указывая, истекает ли срок действия сертификата через ноль секунд.Вот моя командная строка bash для перечисления нескольких сертификатов в порядке их истечения, последний из которых истекает первым.
Образец вывода:
источник
0 7 * * 1 /path/to/cert.sh | mail -s "certbot" my@email.com
Вот функция bash, которая проверяет все ваши серверы, при условии, что вы используете циклический перебор DNS. Обратите внимание, что это требует даты GNU и не будет работать на Mac OS
Пример вывода:
источник
expiry_date
значению необходимо удалить название часового пояса из его конца. Добавьте дополнительныйcut
к концу трубы, чтобы сделать это:| cut -d ' ' -f 1-4
Проверка одной строки на true / false, если срок действия сертификата домена истечет через некоторое время (например, 15 дней):
источник
Для MAC OSX (El Capitan) Эта модификация примера Николая сработала для меня.
Пример вывода:
macOS не понравились
--date=
или--iso-8601
флаги в моей системе.источник
.cer
сертификаты, которые вы только что создали и загрузили с сайта Apple Dev?То же, что принятый ответ, но учтите, что он работает даже с
.crt
файлом, а не только с.pem
файлом, на тот случай, если вы не можете найти.pem
местоположение файла.Результат:
источник
Если (по какой-то причине) вы хотите использовать приложение с графическим интерфейсом в Linux, используйте
gcr-viewer
(в большинстве дистрибутивов оно устанавливается пакетомgcr
(иначе в пакетеgcr-viewer
))источник