Zobacz dokładnie, co zawiera certyfikat
Ten dekoder czyta certyfikaty X.509 — certyfikaty SSL/TLS każdej witryny HTTPS, a także te używane do uwierzytelniania klientów, podpisywania kodu i S/MIME — i pokazuje ich zawartość: podmiot i wystawcę, daty ważności i liczbę dni do wygaśnięcia, alternatywne nazwy podmiotu, typ i rozmiar klucza publicznego, wszystkie rozszerzenia oraz odciski SHA-1 i SHA-256. Wklej jeden lub kilka bloków PEM, sam Base64 albo upuść plik .crt, .cer, .der, .pem lub .p7b. Pełny łańcuch jest dekodowany certyfikat po certyfikacie, a każdy podpis sprawdzany względem następnego. Analiza odbywa się w Twojej przeglądarce; nic nie jest wysyłane.
Jak zdekodować certyfikat
- 1Wklej certyfikat razem z liniami
-----BEGIN CERTIFICATE-----i-----END CERTIFICATE-----albo upuść plik na pole wejściowe. - 2Przeczytaj podsumowanie: dla kogo go wystawiono, kto go wystawił i czy jest dziś ważny.
- 3Sprawdź Subject Alternative Names: przeglądarki porównują nazwę hosta z tą listą, a nie z Common Name.
- 4Skopiuj odcisk, aby porównać go z inną kopią, albo wyeksportuj wszystko jako JSON.
Co zawiera certyfikat X.509?
Certyfikat wiąże klucz publiczny z nazwą i jest podpisany przez wystawcę, który za to powiązanie poręcza. Podmiot to ten, dla kogo jest certyfikat, a wystawca to ten, kto go podpisał; oba zapisuje się jako nazwy wyróżniające, np. CN=example.com, O=Example Inc., C=US. Okres ważności podaje pierwszą i ostatnią chwilę, w której można ufać certyfikatowi, a numer seryjny jednoznacznie identyfikuje go wśród wszystkiego, co podpisał wystawca — to on pojawia się na listach unieważnień.
Cała reszta znajduje się w rozszerzeniach. Od wersji 3 formatu, której przestrzega każdy używany dziś certyfikat, to one niosą większość znaczenia: jakie nazwy obejmuje certyfikat, do czego można używać klucza, czy może podpisywać inne certyfikaty i gdzie sprawdzić, czy został unieważniony.
Rozszerzenia, które mają znaczenie
- Subject Alternative Name (SAN)
- Nazwy DNS, adresy IP, adresy e-mail i URI, dla których certyfikat jest ważny. Przeglądarki ignorują Common Name i sprawdzają tylko tę listę; symbol wieloznaczny, np. <code>*.example.com</code>, obejmuje jeden poziom subdomen.
- Key Usage i Extended Key Usage
- Co klucz może robić: podpisywać, szyfrować klucze, podpisywać certyfikaty; i w jakim celu, np. uwierzytelnianie serwera TLS lub podpisywanie kodu.
- Basic Constraints
- Czy jest to urząd certyfikacji (<code>CA:TRUE</code>), który może podpisywać inne certyfikaty, i ile poziomów pośrednich może po nim nastąpić (długość ścieżki).
- Authority Information Access i CRL Distribution Points
- Skąd pobrać certyfikat wystawcy, gdzie jest jego responder OCSP i gdzie znajduje się jego lista unieważnionych certyfikatów.
- Certificate Policies
- Jaki poziom weryfikacji zastosował urząd: weryfikacja domeny (DV), organizacji (OV) lub rozszerzona (EV).
- Signed Certificate Timestamps
- Dowód, że certyfikat zapisano w publicznych dziennikach Certificate Transparency, czego przeglądarki wymagają od publicznie zaufanych certyfikatów TLS.
PEM, DER, CRT i CER
DER to binarne kodowanie certyfikatu (ASN.1 Distinguished Encoding Rules). PEM to te same bajty w Base64 między liniami -----BEGIN CERTIFICATE-----, dzięki czemu można je wkleić do plików tekstowych i e-maili; kilka bloków PEM w jednym pliku tworzy łańcuch. Rozszerzenia .crt i .cer nic nie mówią o kodowaniu w środku — oba warianty są popularne — a ten dekoder przyjmuje oba. Plik .p7b to pakiet PKCS#7 z kilkoma certyfikatami i również jest obsługiwany.
Aby przekonwertować w wierszu poleceń, openssl x509 -in cert.der -inform der -out cert.pem zamienia DER na PEM, a openssl x509 -in cert.pem -noout -text wypisuje mniej więcej te same informacje co ta strona.
Łańcuchy, certyfikaty samopodpisane i odciski
Serwer powinien wysyłać własny certyfikat, a po nim certyfikaty pośrednie prowadzące do zaufanego certyfikatu głównego. Gdy wkleisz tu łańcuch, podpis każdego certyfikatu jest weryfikowany kluczem publicznym następnego, więc od razu widać, czy kolejność jest poprawna i czy nie brakuje ogniwa. Certyfikat, którego podmiot i wystawca są takie same, a podpis weryfikuje się jego własnym kluczem, jest samopodpisany: to albo główny urząd certyfikacji, albo certyfikat testowy.
Odcisk to hash całego certyfikatu. Odciski SHA-256 to standardowy sposób przypinania lub porównywania certyfikatów; odciski SHA-1 wciąż pokazują starsze narzędzia, np. przeglądarka certyfikatów Windows. Hash SPKI SHA-256 obejmuje tylko klucz publiczny i nie zmienia się, gdy certyfikat zostaje odnowiony z tym samym kluczem. Aby utworzyć parę kluczy dla nowego certyfikatu, skorzystaj z generatora par kluczy.
Najczęstsze pytania
- Jak sprawdzić, kiedy wygasa certyfikat SSL?
- Wklej certyfikat i spójrz na Ważność: data Nie później niż to moment wygaśnięcia, a plakietka pokazuje, ile dni zostało. Aby pobrać certyfikat witryny, otwórz go w przeglądarce certyfikatów i wyeksportuj albo uruchom openssl s_client -connect example.com:443 -showcerts.
- Czym różni się PEM od DER?
- Zawierają ten sam certyfikat. DER jest binarny; PEM to te dane binarne w Base64 z liniami BEGIN i END. To narzędzie czyta oba.
- Dlaczego przeglądarka twierdzi, że nazwa się nie zgadza?
- Nazwa hosta musi znajdować się w rozszerzeniu Subject Alternative Name. Przeglądarki nie patrzą już na Common Name, więc certyfikat z nazwą tylko w CN zostanie odrzucony.
- Czy mogę zdekodować cały łańcuch certyfikatów?
- Tak. Wklej wszystkie bloki PEM razem albo upuść pakiet .pem lub .p7b. Każdy certyfikat jest pokazywany po kolei, a każdy podpis sprawdzany kluczem następnego certyfikatu.
- Co oznacza „samopodpisany”?
- Certyfikat został podpisany własnym kluczem, a nie przez osobny urząd certyfikacji. Certyfikaty głównych urzędów są samopodpisane z założenia; w przypadku witryny certyfikat samopodpisany jest zaufany tylko tam, gdzie zainstalowano go ręcznie.
- Czy można zdekodować klucz prywatny lub CSR?
- Nie. Narzędzie czyta tylko certyfikaty i poinformuje Cię, jeśli wkleisz klucz prywatny, klucz publiczny lub żądanie podpisania certyfikatu.
- Czy wklejanie tu certyfikatu jest bezpieczne?
- Certyfikaty są publiczne — serwery wysyłają je każdemu odwiedzającemu — a dekodowanie i tak odbywa się w całości w Twojej przeglądarce. Nigdy nie wklejaj klucza prywatnego na żadnej stronie.