Kiedyś pisałem jak można uzyskać bezpłatny certyfikat SSL dla naszej strony internetowej od StartSSL/StartCom – dziś chciałbym rozszerzyć ten wątek o kilka przydatnych poleceń, dzięki którym sprawdzicie parametry m.in. swojego certyfikatu, w tym datę do kiedy jest ważny…
Spis treści w artykule
OpenSSL i informacje o certyfikacie
W tym celu skorzystamy z oprogramowania OpenSSL, dostępnego zarówno na urządzenia z systemem Linux, jak i Windows, które pewnie każdy z Was ma m.in. na swoim serwerze zainstalowane (choćby właśnie do obsługi certyfikatów i połączeń SSL/TLS).
Daty związane z certyfikatem sprawdzicie za pomocą polecenia:
sudo openssl x509 -noout -in /ścieżka/do/certyfikatu/ssl.crt -dates
Np.:
sudo openssl x509 -noout -in /etc/ssl/private/webinsider.pl/ssl.crt -dates
W odpowiedzi uzyskacie dwie daty związane z danym certyfikatem – początkową i końcową:
notBefore=Aug 10 22:15:18 2015 GMT
notAfter=Aug 10 17:44:06 2016 GMT
Kolejnym poleceniem możecie sprawdzić szczegóły związane np. z domena na którą certyfikat jest wystawiony:
sudo openssl x509 -noout -subject -in /ścieżka/do/certyfikatu/ssl.crt
Np.:
sudo openssl x509 -noout -subject -in /etc/ssl/private/webinsider.pl/ssl.crt
Tym razem w odpowiedzi uzyskacie domenę i adres e-mail związany z certyfikatem:
subject= /C=PL/CN=webinsider.pl/[email protected]
Za pomocą następnego polecenia odczytacie informacje o podmiocie który wystawił certyfikat:
sudo openssl x509 -noout -issuer -in /ścieżka/do/certyfikatu/ssl.crt
Np.:
sudo openssl x509 -noout -issuer -in /etc/ssl/private/webinsider.pl/ssl.crt
Co w przypadku testowanego certyfikatu wygląda tak:
issuer= /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
A jeśli ciągle Wam mało informacji, to możecie skorzystać z kolejnego polecenia, dzięki któremu odczytacie właściwie wszystkie możliwe informacje o certyfikacie:
sudo openssl x509 -text -in /ścieżka/do/certyfikatu/ssl.crt
Np.:
sudo openssl x509 -text -in /etc/ssl/private/webinsider.pl/ssl.crt
Od razu uprzedzam, że jest tego sporo, i choćby dlatego z polecenia w tej formule korzystam niezwykle rzadko…
Skrypt do automatycznego wyłapywania wygasających certyfikatów
Podane powyżej polecenia można wykorzystać również do przygotowaniu skryptu, który np. za pomocą CRONa będzie raz dziennie sprawdzał czy przypadkiem któryś z naszych certyfikatów nie wygasa w najbliższym czasie.
Oczywiście można by pobrać datę z systemu, datę końcową certyfikatu i jakiejś obróbce ją porównywać – ale to niepotrzebne komplikowanie sobie życia, bo na szczęście mamy do dyspozycji parametr:
-checkend [czas_w_sekundach]
Za pomocą tego parametru możemy sprawdzić, czy do końca ważności certyfikatu zostało mniej lub więcej sekund niż podaliśmy jako parametr.
Np. by sprawdzić, czy któryś certyfikat nie wygasa w ciągu najbliższych 7 dni (7 dni x 24 godziny x 60 minut x 60 sekund = 604800 sekund) polecenie będzie wyglądało tak:
sudo openssl x509 -noout -in /ścieżka/do/certyfikatu/ssl.crt -checkend 604800
Choć samo z siebie nic Wam nie da, bo ważna jest w tym przypadku odpowiedź programu OpenSSL, a konkretnie kod wyjścia/zakończenia:
- exit 0 – certyfikat ważny więcej niż podany czas
- exit 1 – certyfikat wygasa w podanym czasie/okresie
Więc cały kod będzie wyglądał tak:
if sudo openssl x509 -noout -in /ścieżka/do/certyfikatu/ssl.crt -checkend 604800
then
echo "OK: Certyfikat nie wygasa w ciągu najbliższych 7 dni"
else
echo "UWAGA: Certyfikat wygasa w ciągu najbliższych 7 dni"
# Jakaś dodatkowa akcja, np. wysłanie wiadomości e-mail
fi
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01