Formáty pro uložení SSL certifikátů

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-----
MIICvzCCAacCADB7MQswCQYDVQQGEwJDWjEWMBQGA1UEAxMNc3NsbWVudG9yLmNv
bTENMAsGA1UEBxMEQnJubzEZMBcGA1UEChMQU1NMbWVudG9yIHMuci5vLjEXMBUG
A1UECBMOQ3plY2ggcmVwdWJsaWMxETAPBgNVBAsTCEludGVybmV0MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoe908o6YqE2bg667UQJg0tNFfVIGGBjn
NUcXLaEF47uI3lBiPd+q9jDeaLRk+rAg+/DKv7trjvbLKsViq8cBMA3QSi3HeVaQ
eODrzTsr7+QtGrmdiPIx90txJ7kbWgzNNej+ZaUvmHPsVG2AWdzv7yo4gr7wvbPB
jcvKSvH/45ydKctkarRvJ6y897woYNJQ24w50RkYM8gZmrieXj0SWtTYh8fZJrWv
llRvP7x/fJqmbcrTtb5OfNgLnBaV3z8VE7qz+02MG97u64IAN5TPIrXs67p/Sm5i
ZNZzHvq1xB4fiUPdbw0kETzxfkt0+0xSfm7GarhO4go+FtlCf9gDdwIDAQABoAAw
DQYJKoZIhvcNAQELBQADggEBABmM4x+oXoaMRQcb1q9+n5iuILUQ1tGQI0f4vWt/
0OpYh3WMwFjGJDWpKrmMsEzo2sF72+aqLtBuqlVfF3CEdHdEoyzjVdgJnLXmDs4E
VtOM5FAUpALTaG37wFt7XKnyDYEVgA1//pD+lLnJ01dHSucygm9yk4mxc5HX7yyL
wh3/gthdxhHPLJTW27baAhyMsEmaFppe1lVXpy8l/tOszKYDw+fBcWno+pCGLelC
sNQ/2QD7k4fKT3Fgf5DM2KOokt02zV+hjG6RwhsiwU8ouukf2wmy8g81egV8+2Ip
9Y24GMGpmq5PmaPvKTHwZvLmJ5+rmHfVKLUNqLXTrXVHCz4=
-----END 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 (‚/‘).