Rozdíly mezi soubory .pfx, .p12, .cer a .crt podrobně vysvětleny

Poslední aktualizace: 13/01/2026
Autor: Isaac
  • Formáty .cer a .crt obvykle obsahují veřejné certifikáty X.509 v PEM nebo DER, zatímco .pfx a .p12 jsou kontejnery PKCS#12 s certifikátem, řetězcem a heslem chráněným soukromým klíčem.
  • PEM a PKCS#7 (.p7b) používají kódování Base64 ASCII, DER a PKCS#12 jsou binární; všechny představují stejnou kryptografickou informaci s různými kontejnery a využitím.
  • Soukromý klíč se ukládá v souborech .key nebo v souborech .pfx/.p12, nikdy ne v souborech .p7b; rozlišení umístění klíče je nezbytné pro instalaci, export nebo obnovu certifikátů.
  • OpenSSL umožňuje konverzi mezi PEM, DER, PKCS#7 a PKCS#12, což usnadňuje přizpůsobení jakéhokoli certifikátu formátu požadovanému jednotlivým serverem nebo systémem.

formáty digitálních certifikátů

Pokud jste se dostali až sem při hledání rozdílů mezi soubory .pfx, .p12, .cer a .crt , pravděpodobně jste se při instalaci digitálního certifikátu nebo SSL na serveru setkali s více než jedním podivným souborem. Nejste sami: mezi zkratkami, příponami a formáty se snadno zmást a nevědět, co který soubor dělá nebo který v každém případě potřebujete.

Dobrou zprávou je, že ačkoliv názvy mohou znít zastrašujícím způsobem, lze to vše vysvětlit poměrně jednoduše, pokud pochopíme, že tyto soubory nejsou nic jiného než kontejnery pro certifikáty a klíče v různých formátech (textových nebo binárních) a určené pro různé systémy ( Windows , Linux , Java, prohlížeče atd.). Pojďme se na ně podívat jeden po druhém, v klidu, a poté je vzájemně propojit, abyste přesně věděli, co který z nich je, k čemu slouží a jak je v případě potřeby použít nebo převést.

Co je digitální certifikát a jak spolu souvisí soubory .pfx, .p12, .cer a .crt?

Digitální certifikát je jednoduše elektronický dokument podepsaný certifikační autoritou (CA nebo, dle nařízení eIDAS, kvalifikovaným poskytovatelem služeb), který propojuje identitu s veřejným klíčem. Touto identitou může být osoba, společnost, webový server, doména atd.

K dosažení tohoto spojení se používá kryptografie s veřejným klíčem nebo asymetrická kryptografie : existuje dvojice klíčů, veřejný klíč (který může znát kdokoli) a soukromý klíč (který by měl mít pouze jeho vlastník). Co je zašifrováno veřejným klíčem, lze dešifrovat pouze soukromým klíčem a naopak, což umožňuje autentizaci, šifrování a elektronické podpisy.

Za všemi těmito certifikáty stojí infrastruktura veřejných klíčů neboli PKI , která zahrnuje certifikační autoritu, registrační autority, úložiště certifikátů, seznamy zneplatněných certifikátů (CRL) a v mnoha prostředích i autoritu časového razítka (TSA), která zaznamenává, kdy byl dokument podepsán.

Vnitřní struktura převážné většiny certifikátů pro všeobecné použití se řídí standardem X.509 , definovaným ITU a podrobně popsaným v RFC 5280. Tento standard definuje pole jako verze, sériové číslo, podpisový algoritmus, vydavatel, doba platnosti, předmět, veřejný klíč držitele a možná další rozšíření.

Pokud jde o algoritmy, certifikáty obvykle používají asymetrickou kryptografii s RSA, DSA nebo ECDSA . RSA a ECDSA slouží k podepisování i šifrování, zatímco DSA se zaměřuje na podepisování a ověřování digitálního podpisu.

Interní formáty a rozšíření: PEM, DER, CER, CRT a company

Když mluvíme o příponách jako .cer, .crt, .pem, .der, .pfx, .p12 nebo .p7b , ve skutečnosti mícháme dva pojmy: formát kódování certifikátu (Base64 text nebo binární soubor) a funkci, kterou soubor má (pouze certifikát, certifikát + soukromý klíč, řetězec certifikátů atd.).

Na úrovni interního formátu jsou certifikáty X.509 reprezentovány pomocí ASN.1 a obvykle jsou kódovány pomocí DER (binární) nebo jeho textové varianty PEM (DER převedený na Base64 a zabalený do hlaviček BEGIN/END ). Odtud různé systémy a standardy definovaly specifické kontejnery, jako například PKCS#7 (.p7b) nebo PKCS#12 (.pfx, .p12).

Klíčem k zamezení nejasností je pamatovat na to, že přípona souboru je často jen konvence pojmenování : .cer nebo .crt mohou obsahovat přesně totéž, jen se jedna z nich používá častěji v prostředí Windows a druhá v prostředí Unix/Linux, abychom uvedli příklad.

V rámci této obecné skupiny existuje několik klíčových formátů , které byste si měli být velmi dobře vědomi, protože se s nimi budete setkávat neustále při práci s SSL/TLS nebo osobními certifikáty.

Formát PEM: „čitelný text“ certifikátů

Formát PEM je zdaleka nejběžnější pro certifikáty SSL/TLS na serverech, jako je Apache nebo Nginx, a ve většině bezpečnostních nástrojů. Soubor PEM je jednoduše soubor DER překódovaný v Base64 a obklopený textovými záhlavími , což umožňuje jeho otevření a kopírování v libovolném textovém editoru (Poznámkový blok, nano, vim atd.).

PEM je rozpoznán, protože jeho obsah je oddělen řádky jako například —–BEGIN CERTIFICATE—– a —–END CERTIFICATE—–, pokud obsahuje certifikát, nebo —–BEGIN PRIVATE KEY—– a —–END PRIVATE KEY—– , pokud obsahuje soukromý klíč. Všechno mezi tím je řetězec Base64 představující původní binární data.

Jeden soubor PEM může obsahovat pouze certifikát , certifikát a zprostředkující řetězec certifikačních autorit, samostatný soukromý klíč nebo dokonce celý balíček (soukromý klíč, serverový certifikát, zprostředkující certifikáty a kořenový certifikát). V souborech PEM jsou také dodávány žádosti o podepsání certifikátu ( CSR ), což jsou jednoduše struktury PKCS#10 překódované do textu .

Tento formát byl původně definován v dokumentech RFC 1421-1424 jako součást projektu Privacy-enhanced Electronic Mail, který se v e-mailu neuchytil, ale zanechal jako odkaz vynikající textový formát pro přenos kryptografických dat pohodlným, čitelným a snadno kopírovatelným/vkládatelným způsobem.

  Zpráva o tom, že mám virus při vstupu na webovou stránku: co to je a jak se s tím vypořádat

V praxi jsou soubory s příponami jako .pem, .crt, .cer nebo .key na systémech Unix/Linux obvykle soubory PEM. Soubor .key obvykle obsahuje soukromý klíč, .crt nebo .cer certifikát serveru a někdy další soubor PEM obsahuje zprostředkující řetězec certifikačních autorit.

Formát DER: čistý a jednoduchý binární soubor

DER (Distinguished Encoding Rules) je binární kódovací formát pro struktury ASN.1, které popisují certifikát X.509. Nejedná se o text, takže pokud jej otevřete v editoru, uvidíte místo typického řetězce Base64 podivné znaky.

Soubor DER může obsahovat jakýkoli typ certifikátu nebo soukromého klíče a je obvykle identifikován příponami .der nebo .cer, zejména v prostředí Windows nebo na platformách Java. V systému Windows je soubor .der přímo rozpoznán jako soubor certifikátu a po dvojitém kliknutí se otevře v nativním prohlížeči.

Praktický rozdíl u PEM spočívá v tom, že zatímco PEM lze snadno kopírovat a odesílat e-mailem nebo vkládat do webových formulářů, DER je uzavřený binární objekt blob určený pro přímou spotřebu aplikacemi. Interně jsou však informace stejné: PEM je jednoduše DER překódovaný do textu Base64.

Nástroje jako OpenSSL umožňují přepínat z DER na PEM a naopak jediným příkazem, aniž by se jakkoli měnil logický obsah certifikátu, pouze jeho forma reprezentace.

Přípony .cer a .crt: stejný pes s jiným obojkem

Přípony .cer a .crt se používají k označení souborů, které obsahují veřejné certifikáty , obvykle ve formátu PEM nebo DER, v závislosti na systému, ve kterém jsou generovány nebo nainstalovány.

V mnoha případech bude soubor .crt na serveru Apache certifikátem PEM, obklopeným záhlavími BEGIN/END CERTIFICATE a připraveným k vložení do konfiguračního bloku. Ve Windows může být soubor .cer buď PEM, nebo DER, i když se obvykle nachází někde mezi tím v závislosti na nástroji, který jej vygeneroval.

Důležité je pochopit, že přípona striktně nedefinuje interní formát: soubor .cer může být textový soubor PEM nebo binární soubor DER a prohlížeč nebo utilita, jako je OpenSSL, určí, jak jej číst. V prohlížečích a systémech Windows se dvojitým kliknutím otevře prohlížeč certifikátů , kde uvidíte vydavatele, předmět, data platnosti, použití klíče atd.

Při exportu certifikátu bez soukromého klíče z prohlížeče nebo z úložiště certifikátů systému Windows obvykle získáte soubor .cer, který se používá k ověřování podpisů, řetězců důvěryhodnosti nebo šifrování informací , ale nikdy k podepisování jménem vlastníka (k tomu potřebujete soukromý klíč, který je samostatný nebo uvnitř chráněného kontejneru).

CSR, KEY, CA a mezilehlé soubory: další soubory, které jsou součástí certifikátu.

Při zpracování SSL certifikátu nebo osobního certifikátu neuvidíte pouze soubory .pfx, .p12 nebo .cer. Celý proces zahrnuje také soubory jako .csr, .key a certifikáty CA (root a intermediate), které jsou stejně důležité pro fungování všeho.

Žádost o podepsání certifikátu ( CSR) (.csr) je soubor, který obvykle generujete na serveru, kde bude nainstalován certifikát SSL. Obsahuje veřejný klíč, název domény, organizaci, zemi a další informace, které certifikační autorita použije k vydání certifikátu. Soubor je v souladu se standardem PKCS#10 a obvykle je kódován ve formátu PEM, takže jej můžete zkopírovat a vložit do formuláře poskytovatele.

Soukromý klíč, neboli KEY (.key) , je soubor, kde je uložen tajný klíč spojený s certifikátem. Obvykle je ve formátu PEM, odděleném znaky BEGIN PRIVATE KEY a END PRIVATE KEY. Jedná se o extrémně citlivý soubor, který by se neměl sdílet ani nahrávat do veřejných repozitářů, a v mnoha případech je navíc chráněn heslem.

Soubor certifikační autority (CA) obsahuje veřejný klíč vydávající nebo zprostředkující entity. Prohlížeče a operační systémy obsahují vestavěný seznam důvěryhodných CA, ale někdy je potřeba nainstalovat zprostředkující certifikáty, abyste dokončili řetězec důvěryhodnosti a umožnili klientům ověřit certifikát vašeho serveru bez chyb.

Tyto zprostředkující certifikáty lze dodat jako soubory PEM (.pem, .crt, .cer) nebo v kontejneru, například .p7b . V hostingových konfiguracích je velmi běžné, že se od vás požadují soubory CRT (doménový certifikát), KEY (soukromý klíč) a CA nebo zprostředkující certifikáty pro správnou instalaci SSL.

PKCS#7 / P7B: řetězec certifikátů bez privátního klíče

PKCS#7, obvykle reprezentovaný příponami .p7b nebo .p7c , je formát určený k seskupení jednoho nebo více certifikátů do strukturovaného kontejneru bez zahrnutí soukromého klíče. Běžně se používá k distribuci řetězců certifikátů (serverový certifikát plus mezilehlé certifikáty) v prostředích Windows nebo Java (Tomcat, úložiště klíčů atd.).

Soubor .p7b je obvykle kódován v Base64 ASCII, podobně jako soubor PEM, a byl původně definován v RFC 2315 jako součást standardů pro kryptografii s veřejným klíčem. Dnes je jeho nástupcem CMS (Cryptographic Message Syntax), ale název PKCS#7 je ve světě SSL certifikátů stále široce používán.

  Jak používat mobilní telefon jako ověřovač FIDO2 pro relace Windows

Tento formát je velmi užitečný, když potřebujete nainstalovat celý řetězec důvěryhodnosti na server nebo systém, který spravuje certifikáty prostřednictvím úložiště (například úložiště klíčů Java). Poskytovatel SSL obvykle doručí certifikát serveru odděleně od souboru .p7b obsahujícího celý řetězec CA nebo jeden soubor .p7b se vším.

Pokud chcete převést soubor .p7b do formátu PEM, nástroje jako OpenSSL vám umožňují extrahovat certifikáty jediným příkazem a uložit je do jednoho nebo více textových souborů. Bloky BEGIN/END CERTIFICATE pak můžete oddělit, pokud je potřebujete nahrát na server samostatně.

Je důležité si uvědomit, že soubor PKCS#7 nikdy neobsahuje soukromý klíč , takže sám o sobě jej nelze použít k podepsání ani dešifrování: poskytuje pouze veřejnou část řetězce certifikátů k ověření důvěryhodnosti.

PKCS#12: Co přesně jsou .pfx a .p12?

Standard PKCS#12 definuje binární kontejner chráněný heslem, který může obsahovat veřejné certifikáty, kompletní řetězce certifikačních autorit a související soukromý klíč. Nejběžnější přípony pro tento formát jsou .pfx a .p12, které jsou prakticky ekvivalentní.

Historicky PKCS#12 začínal jako formát úzce spjatý s Microsoftem, ale postupem času se standardizoval v RFC 7292 a nyní se používá ve všech typech systémů, a to právě proto, že umožňuje bezpečný přenos páru certifikát + privátní klíč z jednoho počítače do druhého.

Ve světě Windows, když exportujete certifikát „soukromého klíče“ z úložiště certifikátů uživatele nebo počítače, průvodce vygeneruje soubor .pfx (nebo .p12), který obsahuje vše potřebné k jeho importu do jiného systému: soukromý klíč, držitele certifikátu a obvykle i mezilehlý řetězec.

Při vytváření nebo exportu souboru PKCS#12 vás systém vyzve k zadání hesla . Toto heslo bude později vyžadováno pro import souboru do jiného prohlížeče, IIS, e-mailového klienta nebo dokonce jiného operačního systému. Tímto způsobem, pokud někdo soubor .pfx ukradne, nebude jej moci použít bez znalosti hesla.

Nástroje jako OpenSSL umožňují převést soubor .pfx nebo .p12 do formátu PEM, takže získáte textový soubor, ve kterém snadno najdete blok soukromého klíče, certifikát serveru a mezilehlé certifikáty a zkopírujete je tam, kde je to vhodné (například v hostingovém panelu, který samostatně přijímá pouze CRT, KEY a CA).

Obnovení, export a import certifikátů .pfx a .p12

V oblasti osobních certifikátů (například těch, které vydává FNMT nebo jiné orgány k identifikaci osoby před administrativou) je způsob zálohování a obnovování úzce spjat s používáním souborů .pfx nebo .p12 , které se přenášejí na kryptografických kartách, USB tokenech nebo přímo jako chráněné soubory v počítači.

Pokud platnost vašeho osobního certifikátu ještě nevypršela, mnoho úřadů vám umožňuje jej obnovit online : obnovení je možné z registračního bodu (profesní sdružení, společnost, poskytovatel certifikačních služeb atd.) a e-mailem obdržíte odkaz pro dokončení procesu z vašeho počítače.

Pokud však platnost certifikátu již vypršela, obvykle se budete muset osobně dostavit na stejné registrační místo se svou kryptografickou kartou nebo zařízením, kde je uložen vypršený certifikát, identifikovat se a požádat o nové vydání, které můžete opět exportovat ve formátu .pfx nebo .p12 a importovat tam, kam potřebujete.

V prohlížečích, jako je Edge nebo Chrome , probíhá proces importu přes úložiště certifikátů systému Windows . V nastavení ochrany osobních údajů a zabezpečení můžete otevřít správce certifikátů, vybrat kartu Osobní a importovat soubor .pfx nebo .p12. Průvodce se zeptá na heslo kontejneru a nabídne označení klíče jako exportovatelného pro budoucí zálohy.

Pokud místo souboru .pfx máte soubor .cer bez soukromého klíče (ikona certifikátu bez klíče), lze tento soubor použít pouze k instalaci veřejného certifikátu (zobrazí se v sekci „Ostatní osoby“), nikoli však k podepsání nebo ověření. V takovém případě nebudete moci odtud obnovit soukromý klíč a pokud nemáte jinou platnou kopii, jedinou možností bude požádat o nový certifikát.

Jak se tyto formáty používají v SSL certifikátech serverů

V každodenní práci s webovými servery, VPN , proxy nebo Java aplikacemi závisí různé formáty certifikátů na systému a typu instalace. Nastavení Apache v Linuxu není totéž jako nastavení IIS ve Windows nebo Tomcatu v Javě.

V prostředích Unix/Linux (Apache, Nginx, HAProxy atd.) je běžnou praxí pracovat se samostatnými soubory PEM : jeden pro soukromý klíč (.key), druhý pro certifikát serveru (.crt nebo .cer) a někdy další s mezilehlým řetězcem CA. Všechny tyto soubory jsou uvedeny v konfiguraci serveru pro vytvoření TLS.

Na platformách Windows (IIS, Vzdálená plocha atd.) je velmi běžné, že se zobrazí výzva k zaslání souboru .pfx nebo .p12 obsahujícího certifikát, soukromý klíč a řetězec klíčů. Průvodce importem se postará o umístění každé části do odpovídajícího úložiště, takže se nemusíte starat o interní detaily.

V prostředích Java (Tomcat, aplikace s vlastním úložištěm klíčů) se používají úložiště typu JKS nebo PKCS#12 . V mnoha případech se soubor .pfx importuje přímo nebo se certifikáty .p7b používají ke konfiguraci řetězce důvěryhodnosti v rámci úložiště klíčů, v závislosti na nástroji a verzi Javy.

  Kompletní tutoriál Docker Compose pro orchestraci kontejnerů

Při zakoupení SSL certifikátu od externího poskytovatele můžete obdržet různé kombinace souborů: soubor CRT + CA ve formátu PEM, soubor .p7b obsahující řetězec klíčů nebo dokonce předpřipravený soubor .pfx. Klíčem je identifikovat, kde se nachází soukromý klíč (pokud je dodán s vámi a není vygenerován serverem) a který soubor obsahuje certifikát serveru a mezilehlý řetězec klíčů.

V ovládacích panelech hostingu budete obvykle požádáni o vyplnění polí pro CRT, KEY a volitelně i CA nebo zprostředkující certifikát. Pokud máte pouze soubor .pfx, můžete jej pomocí OpenSSL převést na PEM a extrahovat odtud každý blok, přičemž pečlivě zkopírujete od ZAČÁTEK do KONEC každého typu.

Konverze mezi formáty certifikátů pomocí OpenSSL

Jakmile pochopíte, co každý soubor představuje, dalším logickým krokem je vědět, jak je převést, když server nebo aplikace vyžaduje jiný formát, než jaký poskytuje váš poskytovatel internetových služeb nebo certifikační autorita. Standardním nástrojem pro tento účel je OpenSSL, který je k dispozici na většině linuxových distribucí a lze jej nainstalovat i do systému Windows.

Například pokud máte certifikát ve formátu DER (.der, .cer) a potřebujete jej převést do formátu PEM, postačí jeden příkaz, který tento binární soubor překóduje do formátu Base64 s příslušnými hlavičkami. Podobně můžete certifikát PEM transformovat do formátu DER, pokud váš systém akceptuje pouze binární soubory.

Pomocí souboru PKCS#7 (.p7b) můžete pomocí OpenSSL extrahovat certifikáty ve formátu PEM pomocí jednoduchého příkazu, který vytiskne obsažené certifikáty a uloží je do textového souboru. Odtud můžete oddělit jednotlivé bloky BEGIN/END CERTIFICATE, pokud potřebujete samostatné soubory.

V případě PKCS#12 (.pfx, .p12) umožňuje OpenSSL převést kontejner do souboru PEM obsahujícího soukromý klíč a všechny certifikáty. Během procesu budete vyzváni k zadání hesla kontejneru a můžete si zvolit, zda chcete soukromý klíč ponechat šifrovaný nebo v prostém textu v souboru PEM, v závislosti na jeho zamýšleném použití.

Tyto typy konverzí umožňují scénáře, jako je nahrání souboru .pfx na linuxový server, jeho převod do formátu PEM a následné oddělení souborů CRT a KEY pro vyplnění instalačního formuláře SSL, který přímo nepodporuje kontejnery PKCS#12.

Kromě přímých konverzí DER↔PEM, PEM↔PKCS#7, PKCS#7↔PKCS#12 a PKCS#12↔PEM může stejný nástroj generovat CSR, spravovat klíče, kontrolovat certifikáty a kontrolovat data expirace, což z něj činí základní nástroj v jakémkoli prostředí, které pracuje s certifikáty.

Typy digitálních certifikátů a oblasti použití

Kromě formátu souboru je také užitečné mít jasno v typu certifikátů podle jejich použití nebo typu entity, kterou reprezentují, protože to ovlivňuje způsob správy jejich kopií, obnov a instalací.

Na evropské regulační úrovni (nařízení eIDAS) se rozlišuje mezi „jednoduchými“ elektronickými certifikáty a kvalifikovanými certifikáty . První splňují základní požadavky na identifikaci a vydávání, zatímco kvalifikované certifikáty vyžadují od poskytovatele přísnější procesy ověřování identity a přísnější technické a organizační podmínky. Jasným příkladem ve Španělsku by byl elektronický národní průkaz totožnosti (DNIe).

Pokud se podíváme na to, kdo je držitelem, můžeme mít certifikáty pro fyzické osoby, právnické osoby nebo subjekty bez právní subjektivity . Každý z nich slouží k podepisování nebo ověřování v různých kontextech: osobní postupy, transakce jménem společnosti nebo daňové povinnosti.

Ve světě webových serverů je nejznámější rodinou certifikátů certifikáty SSL/TLS , které se instalují na servery za účelem šifrování komunikačního kanálu s uživateli. V této kategorii existují varianty, jako například certifikáty pro jednu doménu, wildcard a více domén (SAN), které se liší počtem doménových jmen, které pokrývají, a úrovní validace.

Bez ohledu na typ mohou být všechny tyto certifikáty uloženy a distribuovány ve stejných formátech: soubory .cer, .crt, .pem, .p7b nebo kontejnery .pfx/.p12, v závislosti na systému, kde budou použity, a zvolené metodě jejich přenosu nebo zálohování.

Užitečnost digitálních certifikátů je obrovská: zajišťují důvěrnost a autenticitu komunikace, umožňují právně platné elektronické podpisy, zjednodušují administrativní a obchodní postupy a umožňují bezpečné fungování více síťových služeb, aniž by se uživatel musel starat o kryptografické detaily.

V tomto bodě je jasné, že přípony jako .pfx, .p12, .cer nebo .crt jsou jednoduše různé způsoby balení téže věci: certifikátu X.509, soukromého klíče a případně řetězce důvěryhodnosti, které jsou v závislosti na prostředí reprezentovány jako text Base64, binární DER nebo kontejnery PKCS pro usnadnění instalace a přenosu mezi systémy.

Jak spravovat digitální certifikáty v různých webových prohlížečích
Související článek:
Jak spravovat digitální certifikáty v různých webových prohlížečích