"Chybné heslo" při pokusu instalovat soubor .p12, vytvořený Firefoxem verze 59.x.x, do Windows
Od verze 59.0.1 změnili vývojáři Mozilly iteraci šifrovacího algoritmu privátního klíče v "záložních" souborech .p12 exportovaných Firefoxem. Formát těchto souborů (s příponou .p12 nebo .pfx) se označuje PKCS12.
Iterace: privátní klíč je chráněn kryptografickým algoritmem (např. 3DES), který se opakuje n-krát, kde n = 1 000 000 (1 milion), a to od verze Firefoxu 59.0.1; číslo n bylo předtím mnohem menší (např. 2048).
Soubor PKCS12 obvykle obsahuje 4 nebo 3 části:
Privátní klíč zašifrovaný n-krát (iterace).
- Řetěz certifikátů:
- Hlavní kořenový certifikát certifikační autority (kořenový certifikát CAcert třídy 1),
- Zprostředkující certifikát certifikační autority (kořenový certifikát CAcert třídy 3; může chybět, je-li Váš certifikát podepsán hlavním kořenovým certifikátem),
- Váš certifikát obsahující mj. veřejný klíč odpovídající privátnímu.
Dešifrovací algoritmus ve Windows nedokáže provést 1 milion iterací. Ohlásí pak chybu "Nesprávné heslo" i při správně zadaném hesle.
Chybu obejdete použitím starší verze Firefoxu (do 58.0.2 včetně), v níž znovu vytvoříte soubor .p12 typu PKCS12.
Existuje i složitější metoda, kdy programem třetí strany soubor .p12 s milionem iterací, vytvořený Firefoxem verze 59.x.x, importujete a exportujete nebo přeformátujete. Lze použít například programy openssl nebo XCA. Manipulace v nich je poměrně složitá; například musíte několikrát bezchybně zadat heslo, kterým jste klíč chránili při exportu z Firefoxu. Pokud však máte zájem, lze použít OpenSSL for Windows (Downloads):
openssl pkcs12 -in <záložní-.p12-z-Firefoxu>.p12 -passin pass:<heslo> -passout pass:<heslo> | openssl pkcs12 -export -out <záložní-p12-pro-windows>.p12 -passin pass:<heslo> -passout pass:<heslo> |
Do příkazů potřebujete zadat totéž heslo 4×, protože první příkaz dešifruje PKCS12 (1.) a zašifruje ho do tvaru PEM (2.), a pak druhý příkaz dešifruje PEM (3.) a zašifruje ho opět do tvaru PKCS12 (4.).
Kdo pracuje raději v grafickém rozhraní (GUI), může ke konverzi souboru .p12 použít program XCA. Jeho instalaci a první spuštění viz článek "Jak vytvořit klientský certifikát CAcert ve Windows (včetně zálohy ve formátu PKCS12) pomocí aplikace XCA".
Abychom vytvořili záložní soubor s menším počtem iterací, který by byl přijatelný pro Windows, musíme původní soubor napřed importovat do XCA a pak jeho obsah (certifikát a privátní klíč) zase exportovat do souboru .p12 nebo .pfx opět se strukturou PKCS12.
Po spuštění XCA a buď vytvoření databáze nebo po jejím otevření pod heslem se objeví základní okno programu s údaji o uložených privátních klíčích. Na záložce Certificates pak vidíme stromovou strukturu uložených certifikátů. Z obou záložek lze tlačítkem "Import PKCS#12" spustit import záložních souborů formátu PKCS12, jejichž přípony jsou .pfx nebo .p12.
Po stisknutí tlačítka "Import PKCS#12" vybereme soubor k importu a zadáme jeho heslo. Klasický záložní soubor .p12 exportovaný z Firefoxu obsahuje čtyři části uvedené výše. Po otevření záložního souboru je XCA ukáže v tomto okně:
V tomto okně vidíme, že k vlastnímu certifikátu a jeho privátnímu klíči přibalil Firefox jeden nebo dva kořenové certifikáty certifikační autority. Kdybychom importovali všechny, dostaneme do Windows kontejneru, určeného pro osobní resp. serverové certifikáty, také kořenové certifikáty, které tam nepatří a jsou už obsaženy v jiných kontejnerech.
Obsah certifikátu ze souboru .p12 si můžete zobrazit jeho označením a tlačítkem "Details" (Podrobnosti).
XCA nám teď nabízí dvě možnosti:
- Označit k importu jen žádoucí části souboru, tedy Vám vydaný certifikát a jeho privátní klíč, jako na předchozím obrázku.
- Odstranit nežádoucí certifikáty tlačítkem "Remove from list" a zbylé importovat (následující obrázek).
Nyní tlačítkem "Import" (1.) nebo "Import All" (2.) importujeme žádoucí certifikáty. Importní okno můžeme zavřít tlačítkem "Done" (Hotovo). Váš certifikát a odpovídající privátní klíč jsou uloženy do databáze programu XCA.
Následný export do souboru .pfx nebo .p12 zahájíme ze záložky "Certificates" stisknutím tlačítka "Export". Otevře se okno, ve kterém napřed vybereme správný formát exportu. Je to opět PKCS#12, kde se exportuje Váš certifikát a odpovídající zašifrovaný privátní klíč, jehož zašifrování již bude přijatelné pro Windows.
Druhým krokem je volba umístění a názvu výstupního souboru. XCA nám nabízí název původního souboru jako adresář, v němž je umístěn soubor PKCS12. Toto nám zcela jistě nebude vyhovovat, protože naše původní záloha existuje jako soubor a ne jako adresář. Název tedy upravíme, například takto:
Třetím krokem je zadání hesla pro zašifrování privátního klíče. Heslo je třeba zadat dvakrát shodně.
Po zadání a stisknutí OK je výstupní soubor vytvořen a připraven pro import do Windows.