Cryptology Academy · Lektion

Oprettelse og administration af certifikatkæder

Generér root CA'er, mellemliggende CA'er og slutentitetscertifikater med korrekt validering af certifikatkæden.

Lektion 2 af 413 trin

Oprettelse og administration af certifikatkæder er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Generering af rod-CA

En rod-CA er et selvsigneret certifikat, der fungerer som den øverste tillidsforankring. Den private nøgle til rod-CA'en skal opbevares offline (på et isoleret system uden netværksforbindelse eller i et HSM), fordi en kompromittering af den underminerer hele PKI'en. "openssl req -x509 -new -nodes -key root_key.pem -sha256 -days 3650 -out root_cert.pem" genererer et selvsigneret rodcertifikat, der er gyldigt i 10 år.

Generering af mellem-CA

Mellem-CA'er signeres af rod-CA'en og bruges til daglig certifikatudstedelse. Generér først mellem-CA'ens nøgle og CSR: "openssl req -new -key intermediate_key.pem -out intermediate.csr". Derefter signerer rod-CA'en den: "openssl x509 -req -in intermediate.csr -CA root_cert.pem -CAkey root_key.pem -CAcreateserial -days 1825 -out intermediate_cert.pem".

Generering af slutentitetscertifikater

Slutentitetscertifikater (bladcertifikater) signeres af mellem-CA'en for bestemte servere eller klienter. Generér servernøglen og CSR'en med alternative subjektnavne (SAN'er), og signér derefter med mellem-CA'en: "openssl x509 -req -in server.csr -CA intermediate_cert.pem -CAkey intermediate_key.pem -CAcreateserial -extensions v3_req -days 365 -out server_cert.pem".

Hvorfor mellem-CA'er beskytter roden

Den private nøgle til rod-CA'en opbevares offline og bruges kun til at signere et lille antal certifikater for mellem-CA'er. Den daglige certifikatudstedelse udføres af online-mellem-CA'er. Hvis en mellem-CA kompromitteres, kan den tilbagekaldes og erstattes uden at kompromittere roden. Rodnøglen forbliver sikker, fordi den aldrig var tilgængelig online.

Kommandoen openssl ca

Kommandoen "openssl ca" giver en mere komplet CA-arbejdsgang end "openssl x509 -req". Den vedligeholder en certifikatdatabase (index.txt), tildeler serienumre fra en serienummerfil og håndterer generering af CRL'er. Den kræver en korrekt konfigurationsfil openssl.cnf med CA-specifikke sektioner, der definerer certifikatpolitikken og begrænsninger for certificeringskædens længde.

Sammensætning af certifikatkædefiler

En komplet certifikatkædefil til en webserver indeholder slutentitetscertifikatet efterfulgt af mellem-CA-certifikater i rækkefølge og slutter lige før roden. Rodcertifikater medtages ikke, fordi browsere har forudinstallerede rodcertifikatlager. Sammenkædningsrækkefølge: "cat server_cert.pem intermediate_cert.pem > chain.pem". Forkert rækkefølge medfører fejl under TLS-håndtrykket.

Verificering af en certifikatkæde

"openssl verify -CAfile root_cert.pem -untrusted intermediate_cert.pem server_cert.pem" verificerer hele kæden. Tilvalget "-untrusted" leverer mellemcertifikater, der er en del af kæden, men endnu ikke er betroede. Hvis verificeringen lykkes, er outputtet "server_cert.pem: OK". Almindelige fejl skyldes manglende mellemcertifikater eller udløbne certifikater.

Almindelige problemer med certifikatkæder

Hyppige problemer med certifikatkæder omfatter: manglende mellemcertifikater (serveren sender kun slutentitetscertifikatet), forkert sammenkædningsrækkefølge (slutentitetscertifikatet skal stå først), et udløbet mellemcertifikat (overses let, fordi slutentitetscertifikatets udløb overvåges), selvsignerede certifikater, der ikke findes i tillidslageret, og navneuoverensstemmelse (certifikatets SAN matcher ikke værtsnavnet). Alle problemer kan diagnosticeres med "openssl s_client -showcerts".

PKCS#12-bundleformat

PKCS#12 (.pfx eller .p12) er et containerformat, der samler den private nøgle, slutentitetscertifikatet og mellemcertifikaterne i en enkelt krypteret fil. Opret et bundle med: "openssl pkcs12 -export -out bundle.pfx -inkey server_key.pem -in server_cert.pem -certfile intermediate_cert.pem". Det kræves af IIS, .NET, Java-nøglelagre og mange virksomhedsprogrammer.

Forskelle mellem PEM, DER og PFX

PEM er base64-kodet ASCII, læsbart for mennesker, understøtter flere objekter i én fil og bruges af Apache, nginx og OpenSSL-værktøjer. DER er binært, indeholder ét objekt pr. fil og bruges af Java (JKS-importer), Android og nogle virksomhedsværktøjer. PKCS#12/PFX er en krypteret binær container til flere objekter og bruges af Windows og IIS. Kend det forventede format i målsystemet, før du implementerer det.

Certificate Transparency og udstedelse

Moderne CA'er skal logge alle udstedte certifikater i Certificate Transparency-logge, før certifikaterne udleveres. Når du opretter en privat CA til intern brug, kræves logning i CT ikke. Offentligt tilgængelige certifikater skal dog have indlejrede signerede certifikattidsstempler (SCT'er) for at blive accepteret af Chrome. Private CA'er kan anvende egne politikker uden CT-krav.

Kontrol af certifikatkædens rækkefølge

Når du sammensætter en TLS-certifikatkædefil til en nginx-server, hvad er så den korrekte sammenkædningsrækkefølge?

Opsummering af lektionen: Håndtering af certifikatkæder

Rod-CA'er er selvsignerede, opbevares offline og signerer kun mellem-CA'er. Mellem-CA'er håndterer den daglige udstedelse. Kædefiler indeholder først slutentitetscertifikatet og derefter mellemcertifikaterne (roden udelades). Verificér med "openssl verify -CAfile root.pem -untrusted intermediate.pem leaf.pem". PKCS#12-bundles samler nøgler og certifikater til Windows og Java. Forkert rækkefølge i kæden er en almindelig årsag til fejl ved implementering og kan diagnosticeres med s_client -showcerts.

Gratis at komme i gang

Lær Cryptology Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “Oprettelse og administration af certifikatkæder” gratis?

Ja — hele teksten til “Oprettelse og administration af certifikatkæder” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oprettelse og administration af certifikatkæder”?

Generér root CA'er, mellemliggende CA'er og slutentitetscertifikater med korrekt validering af certifikatkæden. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Oprettelse og administration af certifikatkæder”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?

Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Det vigtigste om OpenSSL på kommandolinjen
  2. Oprettelse og administration af certifikatkæder
  3. OCSP stapling og Certificate Transparency
  4. Let's Encrypt og automatisering med ACME-protokollen
← Tilbage til Cryptology Academy