SSLmentor

Kvalitní TLS/SSL certifikáty pro webové stránky a internetové projekty.

PEM, PFX, KEY, ...

PEM, PFX, KEY, ...

Formáty certifikátů

V souvislosti s SSL certifikáty je zmiňován poměrně velký počet názvů jako PEM, CSR, KEY, DER atp. Jedná se o soubory, které jsou prakticky pouze "schránky" pro umístění certifikátu a jeho klíčů. Velké množství formátů vzniklo postupně díky různé implementaci v operačních systémech nebo aplikacích, některé byly standardizovány v RFC.

CSR (.csr)

Certificate Signing Request (CSR) je žádost o certifikát, která se předává certifikační autoritě k ocertifikování. Žádost lze generovat přímo na serveru, v aplikaci OpenSSL nebo si ji můžete po objednání SSL certifikátu jednoduše vygenerovat v detailu objednávky dle tohoto návodu včetně privátního klíče. Formát žádosti je podle PKCS #10 (Public Key Cryptography Standards) a je definován v dokumentu RFC 2986 (Certification Request Syntax Specification). CSR žádost v sobě obsahuje potřebné informace k vystavení certifikátu. Tedy název domény, organizaci, stát a také veřejný klíč, který certifikační autorita potvrzuje. Formát kódování žádosti CSR, která se vkládá do objednávky a odesílá certifikační autoritě je PEM. Struktura informací v žádosti je definována pomocí ASN.1 (abstraktní syntaxové notace).
Po vystavení a podepsání certifikátu certifikační autoritou je již certifikát dodáván od autority v jiných formátech, například CRT, p7b. Často je také rovnou zasílán e-mailem v txt formátu PEM, současně s informací o vystavení SSL certifikátu.

Žádost o certifikát a privátní klíč nedoporučujeme vytvářet na neznámých stránkách on-line. V naší nápovědě publikujeme návod jak generovat CSR a privátní klíč v OpenSSL.

PEM (.pem)

Jeden z nejpoužívanějších formátů pro uložení SSL/TLS certifikátů. Jedná se o kontejner pro uchovávání textově kódovaných kryptografických dat (klíčů a certifikátů) a umožňuje snadné odesílání elektronickou poštou, je definován v RFC 1421 až 1424. Může obsahovat samostatný veřejný certifikát, ale také veřejný certifikát plus certifikáty CA nebo může obsahovat celý soubor certifikátů včetně veřejného klíče, soukromého klíče a kořenových certifikátů vystavující certifikační autority. Ve formátu PEM se také dodává žádost o certifikaci CSR (Certificate Signing) Request), která se přenášejí z formátu PKCS10.
Název vznikl ze zkratky Privacy-enhanced Electronic Mail (PEM), což byl standard pro zabezpečení elektronické pošty. Hlavní podstatou PEM formátu je překódování binárního formátu (tedy jednotek a nul) metodou base64 a přidání informativní hlavičky a patičky typu ----- BEGIN PRIVATE KEY ----- a ----- END PRIVATE KEY ----- nebo ----- BEGIN CERTIFICATE ----- a ----- END CERTIFICATE -----.

Ukázka vystaveného certifikátu ve formátu PEM

-----BEGIN CERTIFICATE-----
MIIF+TCCBOGgAwIBAgIRAOUXUXsbB/LpS0VTQsz/HFcwDQYJKoZIhvcNAQELBQAw
gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
QTAeFw0xOTAxMTcwMDAwMDBaFw0xOTA0MTcyMzU5NTlaMFAxITAfBgNVBAsTGERv
bWFpbiBDb250cm9sIFZhbGlkYXRlZDERMA8GA1UECxMIRnJlZSBTU0wxGDAWBgNV
BAMTD3dlYi1zZWN1cml0eS5jejíCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAMNC5twUz78YyvW9Y+avpBZLZjGFLZbNZN3tukWL/1wuwLUrhuCju1IDXWnJ
a7vu4IFA/m/fgD68Y+I6BEF/tdw94TGc/X0n+Q326ZB3ff8e5+GF2o2oXQCUEX60
wGv17zIx8jCYZtaP9rWekUzWmkNPagImboWeYSLWkt7GvdJCU7VY8kpKm7Y/JF/P
Qs4Z5+d4HMsfknJ+PofI7Ve3wT0aPE4aiQ3+MWryxcnZYzH7xNpeB7UbkfFIeDki
4X1vkVFM2Do07IkY9dO8d0UNI3lDDJDpxCCW4kVOl8yQTRtmyPZmtXk5uoyFcCEh
KP5/T2gxNr9KNzIornE0F7LZfpMCAwEAAaOCAowwggKIMB8GA1UdIwQYMBaAFI2M
XsRUrYrhd+mb+ZsF4bgBjWHhMB0GA1UdDgQWBBSHdiVoz7sMpYkdFsQWYHoMcJZU
IzAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwSQYDVR0gBEIwQDA0BgsrBgEEAbIxAQICBzAlMCMGCCsG
AQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBAgEwgYQGCCsG
AQUFBwEBBHgwdjBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5zZWN0aWdvLmNvbS9T
ZWN0aWdvUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggr
BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wLwYDVR0RBCgwJoIPd2Vi
LXNlY3VyaXR5LmN6ghN3d3cud2ViLXNlY3VyaXR5LmN6MIIBBAYKKwYBBAHWeQIE
AgSB9QSB8gDwAHYAu9nfvB+KcbWTlCOXqpJ7RzhXlQqrUugakJZkNo4e0YUAAAFo
Ww+ePQAABAMARzBFAiEAtZoULgmDyEppYK9nmDWNRjRGcE+BBo/DLaaoaYWg7C8C
IH+0UCda6Txcl05inAsMpzlePELyZ3hawgEdmMugK3bXAHYAdH7agzGtMxCRIZzO
JU9CcMK//V5CIAjGNzV55hB7zFYAAAFoWw+eiwAABAMARzBFAiEAmdEbql+1pWWf
HmpkY34JziCOQzaDlFVtUFen+blgIWwCIBVnwDD3vnwSsrO2T5Clo5Pjqa+xxU7O
trLo/ZRGkICBMA0GCSqGSIb3DQEBCwUAA4IBAQAzOM9lS3RSU7rLy8T3BfixHvua
ErZ+YOHCHpYhlCeSuFZ66jVHueYWvgfF8A+enRdMM0k0z0PC9enREnumNDq3msCf
WYhSLd5lDXiEddg2GCrXkwhOFfOiG0tywS5CD+hLsTq1LQkWDQg7EKlIb6ddhaZO
IYEQ9xwE7aehynQEvAjv3UyevMYfvw7glY+MW5bkMfsxPndDD1gDbnYt8kyenjcv
odjnkvTw4ngnCy1gF9mVWkgQsE1j34FER1bVtR/FlspI0FB+ogV4Qhso1N23DwtF
VDKxH8p+ddYh1LX4b6Oy3dZqzt4HOcunPKsFv36ABpeTs8FPOjgQueTWfHQ4
-----END CERTIFICATE-----

Tento textový řetězec si můžete dekódovat například na stránce decoder, kde zjistíte spoustu informací o certifikátu (platnost, informace v certifikátu, autorita a mnoho dalšího).

Soubory PEM jsou zakódovány v Base64 formátu, což 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 (/). Se soubory PEM se velmi jednoduše pracuje, neboť mají obsah v čitelném textovém formátu a lze je otevřít v jakémkoli editoru. Jednotlivé certifikáty jsou pak jednoznačně odděleny hlavičkou a patičkou. Více o PEM formátu ve WIKI...

PFX (.pfx) / PKCS #12 formát

.pfx, ale také .p12 nebo .pkcs12 jsou formáty definované v Public-Key Cryptography Standards (PKCS) standardy). Jedná se o formát kontejneru s heslem, který obsahuje veřejné i privátní certifikáty. Na rozdíl od souborů PEM je kontejner plně šifrován. PKCS #12 byl původně soukromý standard společnosti Microsoft, který byl později definován v RFC 7292. Poskytuje vylepšenou bezpečnost oproti textovému formátu PEM.
S PFX formátem se setkáme především na Windows platformě. Pokud není generována žádost o certifikaci přímo v IIS (Internet Information System) je nutné dodat administrátorovi serveru certifikát ve formátu PFX pro import na server. Pro tyto případy publikujeme v pomocníkovi návod jak exportovat certifikát do PFX pomocí OpenSSL .
Do souboru .pfx se také exportují Code Signing certifikáty a elektronický podpis.

KEY (.key)

V souboru .key se nachází certifikát ve formátu PEM a obsahuje pouze soukromý klíč certifikátu. Privátní klíč je zavřený v řetězcích ----- BEGIN PRIVATE KEY ----- a----- END PRIVATE KEY -----. Tento soubor by měl jít otevřít v jakémkoli textovém editoru.
Pro .key formát není standardizace a jedná se defakto o označení souboru s privátním klíčem.

Soubor .key otevřen v Notepadu

DER (.der)

DER (Distinguished Encoding Rules). Binární soubor (řetězec nul a jednotek), který obsahuje uložené informace o certifikátu. Obsahuje SSL certifikát či celou cestu root-chain (intermediate certifikáty) a může obsahovat také privátní klíč. Je používán v Unixovém světě nebo na Java platformách, ve Windows je soubor .der automaticky považován za nositele certifikátů. DER je defakto binární verze PEM souboru kódovaného base64.

CRT (.crt)

Soubor .crt obsahuje SSL certifkát ve formátu PEM. Lze je otevřít jakýmkoli textovým editorem a certifikát je uzavřen ve značkách ----- BEGIN CERTIFICATE ----- a----- END CERTIFICATE -----.
V OS Windows se při poklepání na soubor a odsouhlasení varování, automaticky otevře okno s detailem certifikátu. Pokud přejmenujete soubor .crt na .txt, poklepáním se otevře textový editor s obsahem ve formátu PEM.

CRT soubory vystaveného SSL certifikátu

P7B (.p7b)

Formát P7B obsahuje veřejný klíč a mezistanici certifikáty (intermediate) od certifikační autority. Neobsahuje privátní klíč. Formát P7B/PKCS #7 je uložen ve formátu Base64 ASCII a soubor má příponu .p7b nebo .p7c. Definováno v RFC 2315 jako PKCS číslo 7. Formát používaný systémem Windows. Java využívá .keystore. U těchto kontejnerů lze definovat hierarchii certifikátů.

Další typy souborů a formátů

CER (.cer), CERT (.cert)

Jde o jinou příponu souborů typu PEM.

CRL

Certificate Revocation List (CRL) - seznam zrušených certifikátů. Certifikační autority v těchto seznamech publikují seznamy zrušených certifikátů.

RFC 7468

V navrhovaném standardu RFC 7468 (Textual Encodings of PKIX, PKCS, and CMS Structures) je popisované a standardizované textové kódování PKI (Public-Key Infrastructure X.509), PKCS (Public-Key Cryptography Standards) a CMS (Cryptographic Message Syntax).

Zpět na Nápovědu
Našli jste chybu nebo něčemu nerozumíte? Napište nám!

CA Sectigo
CA RapidSSL
CA Thawte
CA GeoTrust
CA DigiCert
CA Certum