Tworzenie i zarządzanie łańcuchami certyfikatów
Proszę generować główne CA, pośrednie CA oraz certyfikaty podmiotów końcowych z prawidłową walidacją łańcucha.
Tworzenie i zarządzanie łańcuchami certyfikatów to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Generowanie głównego urzędu certyfikacji
Główny CA to samopodpisany certyfikat, który pełni funkcję ostatecznej kotwicy zaufania. Klucz prywatny głównego CA należy przechowywać offline (w systemie odizolowanym od sieci lub w module HSM), ponieważ jego kompromitacja podważa bezpieczeństwo całej PKI. Polecenie "openssl req -x509 -new -nodes -key root_key.pem -sha256 -days 3650 -out root_cert.pem" generuje samopodpisany certyfikat główny ważny przez 10 lat.
Generowanie pośredniego urzędu certyfikacji
Pośrednie CA są podpisywane przez główny CA i służą do bieżącego wystawiania certyfikatów. Najpierw należy wygenerować klucz pośredni i żądanie podpisania certyfikatu (CSR): "openssl req -new -key intermediate_key.pem -out intermediate.csr". Następnie główny CA podpisuje je za pomocą polecenia: "openssl x509 -req -in intermediate.csr -CA root_cert.pem -CAkey root_key.pem -CAcreateserial -days 1825 -out intermediate_cert.pem".
Generowanie certyfikatu końcowego
Certyfikaty końcowe (leaf) są podpisywane przez pośredni CA dla konkretnych serwerów lub klientów. Należy wygenerować klucz serwera i żądanie podpisania certyfikatu z nazwami Subject Alternative Names (SAN), a następnie podpisać je za pomocą pośredniego CA: "openssl x509 -req -in server.csr -CA intermediate_cert.pem -CAkey intermediate_key.pem -CAcreateserial -extensions v3_req -days 365 -out server_cert.pem".
Dlaczego pośrednie CA chronią główny CA
Klucz prywatny głównego CA jest przechowywany offline i używany wyłącznie do podpisywania niewielkiej liczby certyfikatów pośrednich CA. Bieżące wystawianie certyfikatów jest realizowane przez pośrednie CA działające online. Jeśli pośredni CA zostanie przejęty, można go odwołać i zastąpić bez narażania głównego CA. Klucz główny pozostaje bezpieczny, ponieważ nigdy nie był dostępny online.
Polecenie openssl ca
Polecenie "openssl ca" zapewnia pełniejszy przebieg pracy CA niż "openssl x509 -req". Utrzymuje bazę danych certyfikatów (index.txt), przypisuje numery seryjne na podstawie pliku z numerami seryjnymi i obsługuje generowanie CRL. Wymaga prawidłowo skonfigurowanego pliku openssl.cnf z sekcjami właściwymi dla CA, definiującymi zasady certyfikacji i ograniczenia długości ścieżki.
Tworzenie pliku łańcucha certyfikatów
Kompletny plik łańcucha certyfikatów dla serwera internetowego zawiera certyfikat końcowy, a następnie certyfikaty pośrednich CA w odpowiedniej kolejności, kończąc tuż przed certyfikatem głównym. Certyfikatów głównych nie dołącza się, ponieważ przeglądarki mają fabrycznie zainstalowane magazyny certyfikatów głównych. Kolejność łączenia: "cat server_cert.pem intermediate_cert.pem > chain.pem". Nieprawidłowa kolejność powoduje niepowodzenie uzgadniania TLS.
Weryfikowanie łańcucha certyfikatów
"openssl verify -CAfile root_cert.pem -untrusted intermediate_cert.pem server_cert.pem" weryfikuje cały łańcuch. Flaga "-untrusted" dostarcza certyfikaty pośrednie, które należą do łańcucha, ale nie są jeszcze zaufane. Jeśli weryfikacja zakończy się powodzeniem, dane wyjściowe mają postać "server_cert.pem: OK". Typowe błędy wskazują na brak certyfikatów pośrednich lub wygaśnięcie certyfikatów.
Typowe problemy z łańcuchem
Do częstych problemów z łańcuchem certyfikatów należą: brak certyfikatów pośrednich (serwer wysyła tylko certyfikat końcowy), nieprawidłowa kolejność łączenia (certyfikat końcowy musi być pierwszy), wygasły certyfikat pośredni (łatwo go przeoczyć, ponieważ monitoruje się wygaśnięcie certyfikatu końcowego), certyfikaty samopodpisane, których nie ma w magazynie zaufanych certyfikatów, oraz niezgodność nazwy (SAN certyfikatu nie odpowiada nazwie hosta). Wszystkie te problemy można zdiagnozować za pomocą "openssl s_client -showcerts".
Format pakietu PKCS#12
PKCS#12 (.pfx lub .p12) to format kontenera, który łączy klucz prywatny, certyfikat końcowy i certyfikaty pośrednie w jednym zaszyfrowanym pliku. Tworzenie: "openssl pkcs12 -export -out bundle.pfx -inkey server_key.pem -in server_cert.pem -certfile intermediate_cert.pem". Jest wymagany przez IIS, .NET, magazyny kluczy Java i wiele aplikacji używanych w przedsiębiorstwach.
Różnice między PEM, DER i PFX
PEM to kodowanie ASCII w formacie base64, czytelne dla człowieka, obsługujące wiele obiektów w jednym pliku i używane przez Apache, nginx oraz narzędzia OpenSSL. DER jest formatem binarnym, w którym w jednym pliku znajduje się jeden obiekt; używa się go w środowiskach Java (importy JKS), Android i niektórych narzędziach używanych w przedsiębiorstwach. PKCS#12/PFX to zaszyfrowany binarny kontener na wiele obiektów, używany przez Windows i IIS. Przed wdrożeniem należy sprawdzić, jakiego formatu oczekuje system docelowy.
Certificate Transparency i wystawianie certyfikatów
Współczesne CA muszą rejestrować wszystkie wystawione certyfikaty w dziennikach Certificate Transparency (CT) przed ich przekazaniem. Podczas tworzenia prywatnego CA do użytku wewnętrznego rejestrowanie w CT nie jest wymagane. Certyfikaty używane publicznie muszą jednak zawierać osadzone Signed Certificate Timestamps (SCT), aby Chrome uznawał je za zaufane. Prywatne CA mogą stosować własne zasady bez wymagań CT.
Sprawdzanie kolejności w łańcuchu certyfikatów
Podczas tworzenia pliku łańcucha certyfikatów TLS dla serwera nginx jaka jest prawidłowa kolejność łączenia certyfikatów?
Podsumowanie lekcji: zarządzanie łańcuchem certyfikatów
Główne CA są samopodpisane, przechowywane offline i podpisują wyłącznie certyfikaty pośrednie. Pośrednie CA obsługują bieżące wystawianie certyfikatów. Pliki łańcucha zawierają najpierw certyfikat końcowy, a następnie certyfikaty pośrednie; certyfikat główny jest pomijany. Weryfikację wykonuje się za pomocą "openssl verify -CAfile root.pem -untrusted intermediate.pem leaf.pem". Pakiety PKCS#12 zawierają klucz i certyfikaty na potrzeby Windows/Java. Nieprawidłowa kolejność w łańcuchu jest częstą przyczyną niepowodzeń wdrożenia, które można zdiagnozować za pomocą s_client -showcerts.
Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 67
- Lekcje
- 261
Często zadawane pytania
Czy lekcja „Tworzenie i zarządzanie łańcuchami certyfikatów” jest bezpłatna?
Tak — pełny tekst „Tworzenie i zarządzanie łańcuchami certyfikatów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Tworzenie i zarządzanie łańcuchami certyfikatów”?
Proszę generować główne CA, pośrednie CA oraz certyfikaty podmiotów końcowych z prawidłową walidacją łańcucha. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Tworzenie i zarządzanie łańcuchami certyfikatów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy OpenSSL w wierszu poleceń
- Tworzenie i zarządzanie łańcuchami certyfikatów
- OCSP Stapling i Certificate Transparency
- Automatyzacja Let's Encrypt i protokołu ACME