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 SSL certifikátu 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 cabundle.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.
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-----.
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
Kam dál?
Zpět na Nápovědu
Našli jste chybu nebo něčemu nerozumíte? Napište nám!