W Chrome kliknięcie zielonej ikony blokady HTTPS otwiera okno ze szczegółami certyfikatu:
Kiedy spróbowałem tego samego z cURL, otrzymałem tylko niektóre informacje:
$ curl -vvI https://gnupg.org
* Rebuilt URL to: https://gnupg.org/
* Hostname was NOT found in DNS cache
* Trying 217.69.76.60...
* Connected to gnupg.org (217.69.76.60) port 443 (#0)
* TLS 1.2 connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate: gnupg.org
* Server certificate: Gandi Standard SSL CA
* Server certificate: UTN-USERFirst-Hardware
> HEAD / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: gnupg.org
> Accept: */*
Masz pomysł, jak uzyskać pełne informacje o certyfikacie z narzędzia wiersza polecenia (cURL lub innego)?
ssl
ssl-certificate
curl
Adam Matan
źródło
źródło
curl
z flagą--verbose
pokazuje pełną treść certyfikatu serwera.Odpowiedzi:
Powinieneś być w stanie używać OpenSSL do swoich celów:
To polecenie łączy się z żądaną witryną i przesyła certyfikat w formacie PEM do innego polecenia openssl, które odczytuje i analizuje szczegóły.
(Należy pamiętać, że
-servername
parametr „redundantny” jest konieczny, abyopenssl
wykonać żądanie z obsługą SNI.)źródło
OpenSSL> openssl:Error: 'CONNECTED(00000003)' is an invalid command.
openssl
Vsopenssl x509 -inform pem -noout -text
). To, co napisał Pedro, działa dobrze dla mnie.echo
samo w sobie jest równoznaczne zecho ''
... wysyła pusty ciąg na standardowe wyjście.cat /dev/null |
działałoby również i jest nieco bardziej zrozumiałe.-text
z-enddate
, sprawdź inne opcje (openssl x509 help
).Proste rozwiązanie
To mój codzienny skrypt:
Wynik:
źródło
Zależy, jakiego rodzaju informacji chcesz, ale:
powinien dać ci najwięcej, choć nie tak ładnie czytelny dla ludzi jak Chrome.
źródło
W
-p 443
Określa skanowanie portu 443 tylko. Wszystkie porty zostaną przeskanowane, jeśli zostaną pominięte, i zostaną wyświetlone szczegóły certyfikatu dla każdej znalezionej usługi SSL.--script ssl-cert
Opowiada skryptowego silnika Nmap , aby uruchomić tylkossl-cert
skrypt. Z dokumentu ten skrypt „(r) pobiera certyfikat SSL serwera. Ilość informacji drukowanych na temat certyfikatu zależy od poziomu szczegółowości”.Przykładowe dane wyjściowe:
źródło
Aby sprawdzić szczegóły certyfikatu SSL, używam następującego narzędzia wiersza poleceń, odkąd jest ono dostępne:
https://github.com/azet/tls_tools
Dobrze jest dwukrotnie sprawdzić, czy wszystkie informacje są prawidłowe do ponownego wystawiania certyfikatów lub sprawdzania poprawności istniejących, a także jako niewielką zależność ORAZ nie wymaga konfiguracji.
Oto jak wygląda kilka pierwszych wierszy wyniku:
Po tych wynikach następuje cały łańcuch certyfikatów na tym samym poziomie szczegółowości.
To, co lubię, zamiast być narzędziem cli zorientowanym na ssl, takim jak s_client openssl, to ono próbuje po prostu wykonać jedną pracę, której potrzebujemy przez większość czasu. Oczywiście openssl jest bardziej elastyczny (tzn. Również sprawdza klientcert, imapy na nieparzystych portach itp.) - ale nie zawsze tego potrzebuję.
Alternatywnie, jeśli masz czas na kopanie i konfigurowanie lub doceniasz więcej funkcji, istnieje większe narzędzie o nazwie sslyze (nie używa go od zależności i instalacji ...)
źródło
Dla kompletności: jeśli masz zainstalowany system Java 7 lub nowszy
pokazuje łańcuch (jak podano ) z prawie wszystkimi szczegółami w przeważnie raczej brzydkim formacie.
Czy powinieneś mieć zainstalowaną Javę w swoim systemie, nie odpowiadam.
źródło
Używam do tego skryptu powłoki. To tylko opakowanie wokół polecenia openssl, które ratuje mnie przed zapamiętaniem składni.
Zapewnia opcje analizowania większości informacji o certyfikacie, którymi zwykle jestem zainteresowany, lub wyświetlania surowego wyniku opensl.
Może wysłać zapytanie do lokalnego pliku certyfikatu lub zdalnego serwera.
Stosowanie:
Możesz pobrać skrypt tutaj: http://giantdorks.org/alain/shell-script-to-check-ssl-certificate-info-like-expiration-date-and-subject/
źródło
Jeśli chcesz to zrobić w systemie Windows, możesz użyć programu PowerShell z następującą funkcją:
To pozwala ci robić porządne rzeczy, takie jak
źródło
źródło
Jeśli potrzebujesz tylko daty wygaśnięcia (która nie jest dokładnie odpowiedzią, ale 9/10, dla których ludzie używają danych certyfikatu Chrome), możesz użyć:
echo | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate
Przydatny do skryptów itp.
źródło