Jeśli mam rzeczywisty plik i powłokę Bash w systemie Mac lub Linux, jak mogę zapytać o plik cert, kiedy wygaśnie? Nie jest to strona internetowa, ale sam plik certyfikatu, zakładając, że mam pliki csr, key, pem i chain.
326
Z openssl
:
openssl x509 -enddate -noout -in file.pem
Dane wyjściowe mają postać:
notAfter=Nov 3 22:23:50 2014 GMT
Zobacz także odpowiedź MikeW, aby dowiedzieć się, jak łatwo sprawdzić, czy certyfikat wygasł, czy też nie, lub czy upłynie określony czas, bez konieczności analizowania powyższej daty.
-startdate
i-enddate
wbudowane wx509
narzędzie. Uratują cigrep
.Jeśli chcesz tylko wiedzieć, czy certyfikat wygasł (lub zrobi to w ciągu najbliższych N sekund),
-checkend <seconds>
opcjaopenssl x509
:Oszczędza to konieczności samodzielnego porównywania daty i godziny.
openssl
zwróci kod zakończenia0
(zero), jeśli certyfikat nie wygasł i nie zrobi tego przez następne 86400 sekund, w powyższym przykładzie. Jeśli certyfikat wygasł lub już to zrobił - lub inny błąd, taki jak niepoprawny / nieistniejący plik - kod powrotu to1
.(Oczywiście zakłada się, że czas / data są ustawione poprawnie)
źródło
-noout
opcję wyświetlania pomocnego komunikatu za pomocą jednego polecenia bez dodatkowej logiki. Np.openssl x509 -checkend 0 -in file.pem
Da wynik „Certyfikat wygaśnie” lub „Certyfikat nie wygaśnie” wskazując, czy certyfikat wygaśnie za zero sekund.Oto mój wiersz poleceń bash, aby wyświetlić listę wielu certyfikatów w kolejności ich wygaśnięcia, ostatnio wygasającą jako pierwszą.
Przykładowe dane wyjściowe:
źródło
0 7 * * 1 /path/to/cert.sh | mail -s "certbot" [email protected]
Oto funkcja bash, która sprawdza wszystkie twoje serwery, przy założeniu, że używasz round-robin DNS. Pamiętaj, że wymaga to daty GNU i nie będzie działać w systemie Mac OS
Przykład wyjściowy:
źródło
expiry_date
wartość będzie musiała usunąć nazwę strefy czasowej z jej końca. Dodaj dodatkowycut
koniec rury, aby to zrobić:| cut -d ' ' -f 1-4
Sprawdzanie jednej linii wartości true / false, jeśli certyfikat domeny wygasnie później (np. 15 dni):
źródło
Dla MAC OSX (El Capitan) Ta modyfikacja przykładu Mikołaja działała dla mnie.
Przykładowe dane wyjściowe:
macOS nie lubił flag
--date=
lub--iso-8601
w moim systemie.źródło
.cer
certyfikaty, które właśnie utworzyłeś i pobrałeś ze strony Apple Dev?Taka sama jak zaakceptowana odpowiedź, ale pamiętaj, że działa nawet z
.crt
plikiem, a nie tylko z.pem
plikiem, na wypadek, gdybyś nie był w stanie znaleźć.pem
lokalizacji pliku.Wynik:
źródło
Jeśli (z jakiegoś powodu) chcesz korzystać z aplikacji GUI w systemie Linux, użyj
gcr-viewer
(w większości dystrybucji jest instalowana przez pakietgcr
(inaczej w pakieciegcr-viewer
))źródło