Rozumíte pojmům PEM, CER, CRT, PFX, P12, DER a dalším formátům pro uložení klíčů SSL certifikátů? Projdeme si základní rozdíly mezi těmito formáty a jejími příponami. Klíče jsou uložené v souborech buď v textové podobě pro linuxové servery nebo v binární podobě v případě Windows serverů. Výhodou textových formátů je, že je jednoduše otevřete v txt editoru a uvidíte jejich obsah zakódovaný do Base64 s ohraničením klíče značením BEGIN a END CERTIFICATE.
PEM formát (X.509)
Jeden z nejpoužívanějších formátů pro uložení SSL/TLS certifikátů, včetně vystavovaných certifikátů certifikačními autoritami. Obsah klíče je ohraničen značkami ‘—————BEGIN CERTIFICATE—————” a “—————END CERTIFICATE—————”. Privátní a veřejný klíč mohou být v jednom souboru, většinou se však dodávají odděleně. PEM – anglicky Privacy Enhanced Mail.
- soubor je zakódovaný v Base64 formátu*
- nejčastější koncovky souborů .cer, .crt, .pem
- koncovka .key obsahuje privátní klíč
- formát využíván převážně v Unixovém světě (Apache, Postfix, Linux OS, Unix)
- wiki: X.509 standard
Ukázka PEM formátu veřejného klíče, který se zadává do objednávky
-----BEGIN CERTIFICATE REQUEST----- |
DER formát
Binární soubor (řetězec nul a jedniček), který obsahuje uložené informace o certifikátu. Obsahuje SSL certifikát či celou cestu root-chain (intermediate certifikáty) a může obsahovat privátní klíč.
- formát pro všechny typy certifikátů, včetně privátního klíče
- přípona souborů .cer nebo .der
- formát je používán v Unixovém světě nebo na Java platformách
P7B/PKCS#7 formát
Tento formát obsahuje certifikáty, případně i cestu root-chain, zakódované v Base64 formátu pomocí ASCII znaků.
- neobsahuje privátní klíč
- přípona souborů .p7b nebo .p7c
- použití u Windows OS, Java Tomcat
PFX/PKCS#12 formát
Binární formát pro kompletní zapouzdření certifikátu, privátního klíče a root-chain (intermediate certifikátů).
- koncovka formátu .pfx nebo .p12.
- typické pro použití u OS Windows (IIS)
- lze nastavit ochranu heslem
- formát PFX se také používá k podepisování pomocí Code Signing certifikátů
(*) Base64 je kódování, které převádí binární data na posloupnost tisknutelných ASCII znaků (64 prvková sada znaků tvořená velkými i malými písmeny anglické abecedy, číslicemi a znaky plus (‚+‘) a lomítko (‚/‘).