crt tanúsítvány létrehozása és láncolt CRT-fájl készítése OpenSSL eszközökkel
A szöveg fő témája a CRT-típusú tanúsítványok előállítása, a nyilvános kulcsú infrastruktúra (PKI) részei, és a tanúsítványlánc összeállításának gyakorlati lépései. A cikk összegyűjti a különböző formátumok közötti konverziók, a chain (lánc) létrehozásának és telepítésének alapelveit, valamint a gyökér-, köztes- és végfelhasználó tanúsítványok szerepét.
A tanúsítványok alapfogalmai
A PEM formátumú tanúsítványok legtöbbször .crt, .pem, .cer kiterjesztésekkel érhetők el, és Base64 ASCII kódolásban tárolják őket a „-----BEGIN CERTIFICATE-----” és „-----END CERTIFICATE-----” sorok között. A DER formátum inkább bináris, gyakran Java környezetekben használatos. A PKCS#12 vagy PFX formátum egy titkosított bináris konténer, amely egy tanúsítványt és a hozzá tartozó privát kulcsot tartalmazhat. A P7B (PKCS#7) gyakran csak tanúsítványokat tartalmaz lánccal, privát kulcsot nem. A PEM és DER közti konverzió gyakori feladat a különböző szerverek és rendszerek között történő telepítéshez.
A lánc fogalma és elhelyezésének szabályai
A tanúsítványláncban általában három szint található: gyökértanúsítvány (root), köztes tanúsítvány (intermediate) és a végfelhasználó/domain tanúsítvány. Fontos megjegyzés: a domain tanúsítványt nem szabad belefoglalni a láncba; a láncban csak a köztes és gyökér tanúsítványok szerepelnek. A lánc segíti a kliens oldali megbízhatóságot és az ellenőrzési folyamatot, amikor a böngésző vagy a szerver felhasználói csatlakoznak egy HTTPS/TLS kapcsolat során.
Lépésről lépésre: hogyan hozzunk létre láncolt CRT-fájlt OpenSSL-lel
Először készítsen privát kulcsot és saját CSR-t (Certificate Signing Request): Létrehoz egy myserver.key és egy server.csr fájlt. A CSR tartalma a domain és szervezet adatait tartalmazza.
A CSR-t küldje el a hitelesítési hatóságnak (CA). A CA kiad egy végfelhasználó tanúsítványt (pl. server.crt) és szükség esetén köztes tanúsítványt (pl. intermediate.crt).
Szerezze be a gyökér-tanúsítványt és a köztes tanúsítványokat, majd ezeket összeállítva hozza létre a láncot: köztes + gyökér.
Helyezze el a domain tanúsítványt a láncba úgy, hogy a domain tanúsítvány ne kerüljön a láncba. A végfelhasználó oldalán a kliens által megbízható láncnak kell megjelenni.
Converziók és formátumok: szükség lehet a CRT és a KEY fájlok DER- vagy PEM-formátumba történő konvertálására, illetve a CA-bundle létrehozására (gyökér- és köztes tanúsítványokat tartalmazó csomag). A PEM formátumú fájlokat külön-külön vagy egyesítve is használhatja a szerver szoftverekkel.
Formátumok és konverziók röviden
- PEM formátum: tartalmazhat tanúsítványt és/vagy privát kulcsot, tipikusan .pem, .crt, .cer és .key kiterjesztésekkel. Kezdő sorok: „-----BEGIN CERTIFICATE-----” és záró sorok: „-----END CERTIFICATE-----”.
- DER formátum: bináris kódolás, nincs olvasható BEGIN/END fejléc. Java környezetekben gyakori.
- PKCS#12 / PFX formátum: bináris konténer, amely a tanúsítványt és a privát kulcsot egy titkosított fájlban tárolja (általában .p12 vagy .pfx, jelszóval védve).
- PKCS#7 / P7B formátum: csak tanúsítványokat tartalmaz, privát kulcs nincs benne. Gyakori Windows/JAVA környezetben.
Gyakorlati útmutató a lánc létrehozásához Linuxon az OpenSSL használatával
OpenSSL egy népszerű és nyílt forráskódú eszközkészlet az X.509 tanúsítványok, CSR, kulcsok kezelésére. A következő lépések általánosak:
Lépjen be a szerverre, és generáljon egy privát kulcsot és CSR-t: openssl genrsa -out myserver.key 2048 és openssl req -new -key myserver.key -out server.csr.
Küldje a CSR-t a CA-nak, majd kapja vissza a domain tanúsítványt (például server.crt) és szükség esetén köztes tanúsítványt (intermediate.crt).
Hozza létre a láncot úgy, hogy a chain vagy CA_bundle tartalmazza a köztes és gyökértanúsítványt (például intermediate.crt + rootCA.crt).
Konvertálja a tanúsítványokat a kívánt formátumba a szerver követelményei szerint (például PEM vagy PKCS#12). OpenSSL parancsok: - PEM konverzió és összefűzés: cat server.crt intermediate.crt rootCA.crt > chain.pem - PKCS#12 létrehozása: openssl pkcs12 -export -out bundle.pfx -inkey myserver.key -in server.crt -certfile chain.pem
A lánc helyes használata a szervereken
A legtöbb szerver (például Apache, Nginx) külön-külön kezeli a privát kulcsot és a tanúsítványt. A láncot a tanúsítványköteggel (CA bundle vagy chain file) lehet mellékelni, hogy a kliens oldali megbízhatóság megmaradjon. Windows környezetben gyakori a PFX/PKCS#12 formátum, amely tartalmazza a privát kulcsot és a tanúsítványláncot is, így egyszerűen importálható.
Tippek a gyakorlati hibakereséshez
- Ha a böngésző jelzi a „megbízhatatlan” CA-t, ellenőrizze, hogy a gyökér- és köztes tanúsítványok megfelelően kerültek-e a láncba és a szerver megfelelően szolgálja-e ki a chain.pem-et.
- Ha a PEM fájlok között több entitás van, győződjön meg róla, hogy a megfelelő sorrendben szerepelnek a chain-ben: domain cert, köztes cert, gyökér cert.
- A privát kulcsot mindig védje jelszóval (különösen PKCS#12 használatakor), és soha ne tegye nyilvánosan hozzáférhető helyre.
Az OpenSSL alapvető összefüggései
OpenSSL a következő fő elemeket kezeli: tanúsítványok (certificate), kulcsok (private/public key), és CSR-ek. A PEM és DER közötti konverziók, a különböző konténerek és kódolások összekapcsolása gyakran elkerülhetetlen a különböző környezetek telepítésénél. A legtöbb esetben a lánc a gyökér- és köztes tanúsítványokból áll, a domain tanúsítványt pedig nem érdemes belefoglalni a láncba.
Rövid példák a gyakorlati parancsokra
Gyökér- és köztes tanúsítványok összefűzésére és egy PEM lánc létrehozására: cat intermediate.crt rootCA.crt > chain.pem
Domain tanúsítvány és privát kulcs PKCS#12-ba való konvertálásához: openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile chain.pem

A cikkben összegyűjtött képletek és útmutatók segítségével megértheti a CRT-típusú tanúsítványok létrehozásának és láncolásának alapelveit, valamint a különböző formátumok közötti konverziók fontosságát a különböző platformokon történő telepítés során.
Tábla: fontos formátumok és jellemzőik
| Formátum | Jellemzők | Használat |
|---|---|---|
| PEM | Base64 kódolt, BEGIN/END sorok | Általános tanúsítvány és kulcs |
| DER | Bináris kódolás | Java/alkalmazások |
| PKCS#7 / P7B | Csak tanúsítványok | Kliens/gyakori Windows |
| PKCS#12 / PFX | Bináris konténer, privát kulcs | Windows import/export |
tags: #crt #tanusitvany #letrehozasa
