Co je to PFX a co obsahuje?

PFX je formát souboru pro uložení certifikátu, kdy je certifikát uložen dohromady s privátním klíčem a s certifikáty autority, která ho vystavila. V serverovém prostředí slouží pro export, přenos a zálohu SSL certifikátů. Tvůrci aplikací tento soubor používají pro podpis aplikace. Například ve Windows se „volá“ v parametru příkazu pro signtool.

Pro porozumění PFX souboru je dobré vědět, co přesně obsahuje. Můžete si ho představit jako schránku, kde je uložen certifikát a to ostatní, co k němu potřebujete; je to takový heslem chráněný ZIP archiv s certifikáty. Technicky přesně mu můžeme říkat certifikát formátu (standardu) PKCS#12.

V PFX souboru je uložen:

  • privátní klíč certifikátu – ten je chráněn heslem
  • certifikát samotný – ten je „veřejnou“ částí
  • související certifikáty CA („mezilehlé“, nebo též „CA bundle“), které zajišťují jeho automatickou důvěryhodnost certifikátu pro klienta

Privátní klíč je tajný, jak už název napovídá; nikdy se nesmí dostat do nepovolaných rukou. Je nutný pro podpis a pokud by ho získal podvodník, může za vás podepisovat aplikace a vydávat je za své vaším jménem. Druhý klíč je veřejný (v certifikátu) a spolu tvoří odpovídající pár (fungují pouze spolu). U webových serverů se také používá dvojice privátní a veřejný klíč – veřejným klíčem ze SSL certifikátu data zašifrujete a dešifrovat je dokáže pouze server, který má odpovídající privátní klíč.

Vytvoření nového PFX s certifikátem

Na úvod praktické části ujasním barevnou konvenci, která by měla pomoci v orientaci v příkazech OpenSSL. Výsledek (PFX) – je označen červeně. Privátní klíč zeleně a váš certifikát od SSLmarketu modře. Když se barvy v příkazech opakují, jedná se o stejný soubor nebo klíč.

Potřebujete-li vytvořit PFX pro podepisování aplikací, musíte vytvořit PFX soubor z privátního klíče, certifikátu a souvisejících certifikátu CA. Privátní klíč se tvoří hned na začátku procesu a k němu jste vytvořili CSR request, který je nutný pro vydání certifikátu.

openssl genrsa nodes3 -out klic-s-heslem.key 2048

openssl req -new -key klic-s-heslem.key -out nazev.csr

Po vystavení certifikátu je třeba dát privátní klíč a certifikát dohromady. Můžete to udělat například pomocí OpenSSL:

openssl pkcs12 -export -in certifikát.cer -inkey privátníklíč.key -out výstup.pfx

Můžete to provést též grafickými nástroji, které OpenSSL využívají. Příkladem takového programu je XCA, které doporučuji. Dalším možným postupem je využíti IIS, které je součástí Windows; odmyslíme fakt, že certifikát není určen pro web – pro náš účel spárování nového certifikátu s CSR a následný export do PFX zcela postačuje.

Co s obnoveným certifikátem?

První rok si vytvoříte PFX a důvěryhodně podepisujete své aplikace. Co však s prodloužením certifikátu? Jak ho dostanu do svého PFX souboru?

SSL certifikát není doména, což znamená, že nestačí zaplatit, aby se prodloužila platnost. Při vystavení je vydán „nový“ certifikát, který je potřeba nasadit na server nebo vložit do PFX. K prodlužování můžete používat stále stejné CSR – ušetříte si práci s neustálým vytvářením nového privátního klíče a žádosti.

Po vydání nového SSL certifikátu si ho spolu s privátním klíčem a novým certifikátem sloučíte do PFX s pomocí OpenSSL:

openssl pkcs12 -export -in certifikát.cer -inkey privátníklíč.key -out výstup.pfx

Pokud nemáte privátní klíč „mimo“ PFX, můžete PFX soubor rozdělit a pak sloučit.

openssl pkcs12 -in file.pfx -out file.pem -nodes

Používáte-li již zmíněný program XCA, stačí nový certifikát vložit ze schránky do programu (Paste PEM data) a pak exportovat do P12 (PFX). Program automaticky zajistí, aby se vyexportovat i příslušný privátní klíč a certifikáty CA. Ty jste dříve do programu naimportovali a pokud nikoliv, najdete je v e-mailu o vystavení od nás (tam je vše potřebné, takže nemusíte nic hledat). Exportem do formátu P12 tak získáte nové PFX s aktuálním (prodlouženým) certifikátem. Heslo si při exportu můžete opět zvolit sami.

Jak na vytvoření PFX a prodloužení certifikátu
Tagy:    

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *