Nejjednodušší způsob získání klientského certifikátu ve Windows

Dne 20190909 bylo bohužel zjištěno, že Firefox verze 63.0 (x64 pro Windows) konečně přestal podporovat tag <keygen> (který jiné prohlížeče nepodporují už déle, je totiž určen k likvidaci). Proto nelze v prohlížeči vygenerovat žádost o certifikát, tedy touto cestou nelze certifikát získat.
/!\ Dočasné řešení: používejte Firefox do verze 62.0 včetně !! /!\
Trvalé řešení: postupujte podle návodů Jak na to: "Jak vytvořit klientský certifikát CAcert ve Windows pomocí MMC" a "Jak vytvořit klientský certifikát CAcert ve Windows pomocí XCA".

Řekněme, že jste u CAcert úplný nováček. Vytvořil jste si svůj CAcert účet. Ověřil jste si svoji e-mailovou adresu (tu, kterou jste zadal do účtu) tak, že jste odpověděl na CAcert PING test. Dostal jste totiž na svůj primární e-mailovou adresu zprávu od CAcert, v níž mj. stálo: "Jakmile bude Váš účet ověřen, bude možné začít vydávat certifikáty co hrdlo ráčí!". Zpráva obsahovala také odkaz, na nějž jste klikl a tím platnost adresy ve svém účtu potvrdil.

Malá odbočka:
Doručení této zprávy vyžaduje její nezabezpečený přenos ze serveru CAcert na Váš poštovní server. Stále více serverů elektronické pošty však nyní vyžaduje zabezpečený přenos, například použitím protokolů TLS. Ten potřebuje mít důvěru k serveru CAcert, aby zprávu přijal. Tuto důvěru však nemá, pokud na něm nejsou instalovány kořenové certifikáty CAcert - zpráva se nepřenese. Jde-li o server, který patří Vám, nebo po dohodě s jeho správcem, mohou být tyto kořenové certifikáty instalovány, nebo může být výjimečně požadavek na TLS šifrování na chvíli vypnut.
Problém nastane, používáte-li veřejný poštovní server (gmail.com, v ČR například seznam.cz nebo volny.cz atd.), po jehož správci nemůžete takový zásah chtít. Pak je třeba dohodnout se se správcem nějaké společnosti, Vám přátelsky nakloněněné, aby na krátký čas převzal poštu pro Vaši doménu, přidělil Vám e-mailovou adresu ve Vaší doméně a přijímal zprávy určené Vám bez zabezpečení TLS anebo s instalací certifikátů CAcert. Současně je třeba do DNS Vaší domény přidat záznam MX odkazující na e-mailový server řečené společnosti a případně upravit TXT záznam obsahující SPF. Podrobnosti najdete v článku Jak pracuje Ping test.

Od února 2019 používá CAcert pro přenosy e-mailových zpráv protokol TLS 1.2 (RFC 5246), který umožňuje zřídit šifrované spojení pro přenos zpráv protokolem SMTP. Šifrované spojení lze úspěšně vybudovat, pokud příjemcův e-mailový server umí rovněž pracovat protokolem TLS 1.2 (dnes všechny veřejné e-mailové servery). TLS 1.2 nemá tak striktní požadavky na protistranu jako předchozí verze TLS, a tak Ping e-mail projde, i když třeba příjemcův server už nepřijímá nezabezpečené spojení. Rovněž odpadá striktní kontrola "obecné známosti" CA vydavatelů certifikátů na obou stranách přenosu. Odpadá tedy hledání spřátelené organizace nebo zásahy do vlastního e-mail serveru, zbývají jen úpravy obsahu DNS Vaší domény.

Potřebujete vůbec klientský certifikát?
Určitě ano. Můžete s ním dělat spoustu věcí: podepisovat/šifrovat svoje e-mailové zprávy, přihlašovat se ke svému účtu, navštívit weby CAcert a weby zabezpečené pomocí CAcert, atd.

Navštivte tedy web http://www.cacert.org prohlížečem Firefox - důležité! Jiné prohlížeče (Chrome, Opera, IE, Safari, Edge, ...) vykazují chyby nebo neumějí vytvořit potřebné klíče!

Dne 20180606 bylo zjištěno, že Firefox verze 60.0.1 "vzal zpátečku" a opět změnil algoritmus ochrany privátního klíče heslem v exportovaném souboru typu .p12 tak, že je opět možno importovat ho do Windows (10) bez nutnosti úprav. Pokud by počet iterací (viz dále v popisu k datu 20180319) Firefox opět zvýšil nad limit Windows, lze vždy použít řešení Nemohu do Windows nainstalovat certifikát ze souboru .p12 vytvořeného novou verzí Firefoxu 59.x.x.

Dne 20180319 bylo bohužel zjištěno, že Firefox verze 59.0.1 změnil algoritmus ochrany privátního klíče heslem v exportovaném souboru typu .p12. Tyto soubory nelze importovat do OS Windows, neboť se vždy ohlásí chyba hesla. Sám Firefox i program XCA soubor otevřou a importují bez problémů.
/!\ Dočasné řešení: používejte Firefox do verze 58.0.2 včetně !! /!\

20180328 Uživatel Firefoxu zjistil příčinu (anglická citace):

We issue certificates to customers for document signing. They use the certificates to sign orders. The software they use to place the orders require the certificate to be in the Microsoft Certificate store. Anyone that downloads their certificate using Firefox must backup the certificate to a .p12 then import into the Microsoft Certificate store using MMC/Certificates (or IE11).
The import into the Microsoft Certificate store fails with an error saying the .p12 password is incorrect. The problem seems to be the Encryption Iteration of 1,000,000. Microsoft doesn't handle that number.
If I convert the .p12 to a .pem using a third party conversion tool, then convert it back to a .p12 with a smaller Iteration, say 2048, it imports into IE just fine.
Is there a configuration option in Firefox to reduce the Encryption Iteration?

Překlad podstatné části:

  • Import do úložiště certifikátů MS selže s chybou tvrdící, že heslo pro .p12 je nesprávné. Problémem je iterace šifrování 1 milion-krát. Tak vysoký počet iterací Microsoft nezpracuje.

  • Když zkonvertuji .p12 na .pem pomocí nástroje třetí strany, pak ho konvertuji zpět na .p12, ale s menším počtem iterací, řekněme 2048, bude do IE [Windows] importován bez chyby.

  • Má Firefox konfigurační možnost omezit počet iterací šifrování?

Mozilla dosud na tuto otázku neodpověděla. Ani na stránce about:config není uvedena taková možnost.

Další řešení pro Windows:

Získejte a instalujte oba kořenové certifikáty CAcert (bez přihlášení jděte na "Kořenový certifikát" v menu napravo). Jsou označeny: PKI klíč třídy 1, PKI klíč třídy 3. Vyberte formát PEM nebo DER. Firefox ho ihned instaluje. Při instalaci PKI klíče třídy 1 potvrďte důvěryhodnost.

Potom se přihlaste svým uživatelským jménem (tj. primární e-mailovou adresou) a heslem. Z menu zvolte: "Klientské certifikáty -> Nový". Objeví se stránka "Nový klientský certifikát".

Nastavte vlastnosti pro nový klientský certifikát

Nezapomeňte "Přidat" svoji e-mailovou adresu (fajfkou ve čtverečku) a potvrdit, že "Přijímáte Dohodu komunity CAcert" (CCA, jiný čtvereček). Pak stiskněte "Další".

Zvolte délku klíče a JEDEM!

Zvolte sílu šifrování (délku klíče v počtu bitů) a stiskněte široké tlačítko "V prohlížeči generujte pár...".

Firefox pak úspěšně vygeneruje žádost o certifikát (CSR) a předloží ho serveru CAcert CA, který obratem vytvoří Váš klientský certifikát.
Když je Váš klientský certifikát vydán, uvidíte jeho obsah kódovaný jako text v Base64 a informaci o něm. Nahoře na stránce jsou tři odkazy pro jeho stažení a instalaci.

Váš klientský certifikát je vydán

Nejjednodušší způsob: použijte instalační odkaz.
Můžete také uložit svůj nový klientský certifikát do souboru a pak ho instalovat do Firefoxu (Správce certifikátů: "Možnosti -> Soukromí a zabezpečení -> Zobrazit certifikáty -> záložka Osobní -> Importovat..." ve Firefoxu verze 58.0.2).

Nyní můžete prohlížet CAcert Wiki zabezpečeným protokolem HTTPS a hlavně můžete podepisovat a šifrovat své e-mailové zprávy nebo se přihlašovat ke svému účtu u CAcert svým zbrusu novým klientským certifikátem.

Na závěr důležité upozornění:
Firefox si ukládá všechny certifikáty do svého vlastního úložiště.
Chcete-li tedy instalovat jak kořenové certifikáty CAcert, tak své klientské certifikáty jinam (například do úložiště operačního systému, jak je tomu například u Windows), musíte tam znovu instalovat kořenové certifikáty a "zálohovat" (tj. exportovat do souboru typu .p12) své klientské certifikáty. Exportujete je zase ze Správce certifikátů ve Firefoxu, viz výše. Exportovaný soubor obsahuje Váš privátní klíč a certifikát. Proto Vás Správce požádá o heslo (zadat 2×), kterým pak při importu soubor odemknete. Import je možný jak do operačního systému, tak do jiných webových prohlížečů, které pak můžete dále používat místo Firefoxu, dáváte-li jim přednost.

Prohlížeč Firefox má sice své vlastní úložiště, lze však nastavit, aby si přečetl kořenové a zprostředkující certifikáty autorit i ze systémového úložiště Windows. Nastavení najdete na stránce about:config jako security.enterprise_roots.enabled a je třeba nastavit ho na true.


Odkazy na články o získání klientského certifikátu (obsah wiki je dostupný jak protokolem HTTP, tak HTTPS):

Procedury pro klientské certifikáty:
Windows:

Unix-Linux:


HowTo/CCforNewbies/CZ (last edited 2019-09-11 08:44:52 by AlesKastner)