Mam kilka certyfikatów SSL i chciałbym otrzymywać powiadomienia o wygaśnięciu certyfikatu.
Moim pomysłem jest stworzenie cronjobu, który codziennie wykonuje proste polecenie.
Wiem, że openssl
polecenia w systemie Linux można użyć do wyświetlenia informacji o certyfikacie zdalnego serwera, tj .:
openssl s_client -connect www.google.com:443
Ale nie widzę daty ważności w tym wyniku. Ponadto muszę zakończyć to polecenie za pomocą CTRL+ c.
Jak mogę sprawdzić termin ważności zdalnego certyfikatu ze skryptu (najlepiej używając openssl
) i zrobić to w „trybie wsadowym”, aby działał automatycznie bez interakcji użytkownika?
-servername www.google.com
serwera dla serwerów obsługujących SNI Aby uniknąć konieczności zakończenia, wyślij do niej / dev / null< /dev/null
Odpowiedzi:
Twoje polecenie oczekuje teraz żądania HTTP, takiego jak
GET index.php
na przykład. Zamiast tego użyj tego:true
: po prostu nie poda żadnych danych wejściowych, po których następuje eof, dzięki czemu openssl kończy działanie po podłączeniu.openssl ...
: polecenie z twojego pytania2>/dev/null
: dane wyjściowe błędu zostaną zignorowane.openssl x509
: aktywuje zarządzanie danymi certyfikatu X.509.-noout
: Pomija cały wynik certyfikatu-checkend 0
: sprawdź, czy certyfikat wygasł w ciągu następnych 0 sekundźródło
-checkend
o wiele łatwiej niż skrypt, który znalazłem, który wykonuje arytmetykę daty!Otrzymuje certyfikat, ale go nie dekoduje. Ponieważ byłoby to potrzebne, jeśli chcesz datę, nie widzisz jej. Potrzebne jest więc podłączenie go do
x509
aplikacji OpenSSL w celu zdekodowania certyfikatu:To da ci w pełni zdekodowany certyfikat na standardowym wyjściu, w tym daty jego ważności.
źródło
Jeśli chcesz sprawdzić datę ważności, dzięki temu wpisowi na blogu znalazłeś sposób na znalezienie tych informacji wraz z innymi istotnymi informacjami za pomocą jednego połączenia:
Dane wyjściowe obejmują wystawcę, podmiot (któremu wydano certyfikat), datę wydania i datę wygaśnięcia :
źródło