SSLmentor

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

openssl

openssl

Export certifikátu do PFX pomocí OpenSSL

Návod k exportování privátního klíče, certifikátu, včetně mezilehlých certifikátů certifikační autority z formátu PEM (X.509) do formátu PFX, který je vhodný k instalaci na Windows server s IIS (Internet Information Server).

Export pomocí OpenSSL

Pro práci s certifikáty je potřeba mít nainstalovanou knihovnu OpenSSL. Na stránce OpenSSL pro Windows a Mac OSX naleznete návod a odkazy ke stažení.

Příprava certifikátů

Pro export budeme potřebovat soubory s certifikáty a privátním klíčem. Vše si uložte do 3 souborů - privátní klíč (.key), veřejný klíč (.pem) a jeden soubor bude s intermediate klíči od CA (.pem). Pro export nezáleží zda se soubory budou mít příponu .PEM nebo .TXT a označení záleží na vaší volbě. Privátní klíč je z hlediska orientace vhodné pojmenovat jako .KEY.

  • soubor s privátním klíčem (uložen při generování v administraci nebo v OpenSSL)
  • soubor s certifikátem od certifikační autority (ocertifikovaný veřejný klíč)
  • soubor s intermediate certifikáty certifikační autority

Soubory obsahují certifikáty ve formátu PEM. Klíče začínají a končí na -----BEGIN CERTIFICATE----- a -----END CERTIFICATE-----, privátní klíč -----BEGIN PRIVATE KEY----- a -----END PRIVATE KEY-----.

Export PEM do PFX

Pro export v OpenSSL využijeme příkaz PKCS12 s nastavenými parametry:

openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.pem -certfile cabundle.pem

Nebo například pokud máte klíče v TXT souborech a spuštěný OpenSSL:

pkcs12 -export -out cert.pfx -inkey key.txt -in cert.txt -certfile ca.txt

Po spuštění bude vyžadováno zadat heslo + potvrzení (min. 4 znaky), certifikát je následně vyexportován do souboru cert.pfx.
Pokud nejsou soubory umístěny v používaném adresáři, je nutno specifikovat cestu. Soubory s certifikáty mohou mít také příponu .txt, jak je uvedeno na obrázku.

OpenSSL - export certifikátu do PFX

Kontrola .pfx souboru s klíči

Po exportu doporučujeme provést kontrolu .pfx souboru, zda byly všechny certifikáty správně vloženy.

openssl pkcs12 -info -nodes -in cert.pfx

Potencionální chyby při exportu

Error opening input file key/cert.txt
key/cert.txt: No such file or directory

Zkontrolujte si cestu a názvy souborů s klíči.

Unable to load certificate
Zkontrolujte správný formát PEM certifikátů a obsah začínajících -----BEGIN CERTIFICATE-----.

UPOZORNĚNÍ na chybu: "The password you entered is incorrect" při importu PFX na starší servery s IIS
OpenSSL od verze 3.0 exportuje soubor PFX s defaultním šifrováním AES256 místo SHA. Nový způsob systémy Win10 <= 1703 nebo Windows Server 2012 R2 nepodporují a import skončí s chybou.

Řešení:
  • Nový PFX certifikát naimportujte na stanici s OS Windows a zde jej vyexportujete opět do PFX. Poté by certifikát měl být bez problému naimportován i na starší OS.
  • Úprava exportního příkazu v OpenSSL, více na stackoverflow.com

Práce s klíči v PFX

Export šifrovaného privátního klíče z .pfx získáte příkazem: openssl pkcs12 -in cert.pfx -nocerts -out key-crypt.key
Heslo pro zašifrování musí být min. 4 znaky dlouhé.

Dešifrování privátního klíče: openssl rsa -in key-crypt.key -out key.key

Export certifikátu (veřejného klíče) do .crt formátu: openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.crt

Konverze certifikátů mezi různými formáty

Pomocí OpenSSL lze provádět různé konverze mezi formáty pomocí následujících příkazů.

Convert PEM → DER
openssl> x509 -outform der -in certificate.pem -out certificate.der
Convert PEM → P7B
openssl>crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile cacert.pem
Convert DER → PEM
openssl> x509 -inform der -in certificate.cer -out certificate.pem
Convert P7B → PEM
openssl>pkcs7 -print_certs -in certificate.p7b -out certificate.pem
Convert P7B → PFX
openssl> pkcs7 -print_certs -in certificate.p7b -out certificate.pem
openssl> pkcs12 -export -in certificate.pem -inkey privateKey.key -out certificate.pfx -certfile cacert.pem
Convert PFX → PEM
openssl>pkcs12 -in certificate.pfx -out certificate.pem -nodes

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