česky | english
NOTA BENE - ROZPRACOVÁNO - Vaše příspěvky a úvahy
Pro Technologii Báze znalostí - Pro Technologii Báze znalostí - přehled
Technologická báze znalostí - Klientské Certifikáty - časté dotazy
- Klientské certifikáty pro bezpečné přihlášení (identifikaci) a zašifrování (soukromí).
Contents
- Technologická báze znalostí - Klientské Certifikáty - časté dotazy
- Přehled
- CAcert
- Aplikace
- Modifikace softwaru pro použití klientských certifikátů
-
Časté otázky a Různé - klientské certifikáty - řešení problémů
- Můj prohlížeč Internet Explorer hlásí chybu číslo "-2146885628" (nebo podobné)
- Kde je můj privátní klíč? Jak ho mohu použít na jiném počítači?
- Obnova klientských certifikátů pomocí FireFoxu
- Kde je soubor PKCS12? - Mám pouze soubor PEM, který tvrdí, že je pouze pro "smartcard"
- "Windows nemá dostatek informací k ověření tohoto certifikátu"
- Nedaří se mi odeslat šifrovanou zprávu z Outlooku
- Můj certifikát je v prohlížeči, ale není v mém e-mailovém klientu - co teď?
- Jak ve Vašich webových aplikacích umožnit identifikaci klientským certifikátem
- Chci použít zprostředkující certifikát třídy 3 ve starší verzi Windows
- iOS mě nechce nechat vybrat klientské certifikáty CAcert pro digitální podpis/zašifrování e-mailů
- Prázdné údaje o způsobech použití klientského certifikátu
- Jak mohu použít klientské certifikáty jako SSH?
- Další odkazy
- Příspěvky a úvahy
Přehled
Šifrování
- Většina e-mailů a okamžitých zpráv je nezašifrovaná, takže se podobají pohlednicím. To znamená, že lidé s přístupem k síti si je mohou přečíst. To často zahrnuje i přístup k bezdrátovým sítím, které používáte, zaměstnance Vašeho poskytovatele služeb Internetu (ISP), ty, kteří provozují Vámi používané služby, vládní úřady a další.
- Vaše klientské certifikáty CAcert Vám mohou zařídit bezpečnější používání Internetu tím, že Vám umožní vytvářet e-maily a okamžité zprávy, které jsou během celého přenosu zašifrovány, a také tím, že vám umožní přihlásit se na webové stránky bezpečnějším způsobem, než je použití hesla.
Identifikace (Authentication)
- Klientské certifikáty lze také použít k identifikaci (přihlášení, log in) uživatele k webu. Ve srovnání s obvyklým přihlášením heslem to má své výhody:
Ochrana před prolomením: certifikáty X.509 je mnohem těžší prolomit než typická hesla.
Ochrana před nepřátelským operátorem systému (SysOp): Ačkoli obvykle musíte zadat přístupové heslo k úložišti certifikátů svého prohlížeče, toto heslo se nikdy neposílá po síti, přímé ani zašifrované! Proto se jako uživatel webu nemusíte starat o nepřátelské operátory, kteří by si mohli Vaše heslo uložit nezašifrované.
Ochrana před spamery: Jako majitel webu, který přijímá pouze certifikáty vydané CAcert, které obsahují skutečné jméno, nemusíte mít obavy z velkého množství účtů vytvářených spamery. CAcert zajišťuje, že takové certifikáty jsou vydány pouze skutečným osobám, které mají pro vložené jméno oficiální doklady totožnosti.
- Můžete také podepisovat zprávy a elektronické dokumenty.
CAcert
Systémy s klientskými certifikáty
- U CAcert jsou nyní klientskými certifikáty (v tabulce: CC) podporovány tyto systémy:
URL
Název systému
typ použití
poznámky
software
hlavní on-line systém pro uživatele CAcert
Pouze CC
Přihlášení klientským certifikátem. Klik na Přihlášení certifikátem. "Normální" přihlášení heslem bez klientského certifikátu je možné jen na www.cacert.org.
CAcert
CAcert blog
CC pro zápis, čtení je volně přístupné
Používá klientské certifikáty pro přidávání poznámek, psaní příspěvků atd. Klik na Přihlášení. Zařídí to bez spamu.
CATS - CAcert Automated Testing Service
Pouze CC
Náš pověstný test Výzva zaručovatele. Když test úspěšně dokončíte, CATS oznámí CAcertu pořadové číslo Vašeho certifikátu a Váš účet obdrží značku PASS.
CATS od CAcert
Seznamy adresátů (Maillists)
CC a heslo
Pro nastavení Vaší účasti v seznamech.
sympa.org
Přihlášení certifikátem SympaHlasovací systém
CC je nutný pro hlasování, čtení je volně přístupné
Výbor používá tento systém k zápisu svých návrhů a výsledků hlasování.
Na zakázku
- Všechny výše uvedené systémy provozuje přímo CAcert. Přidejte systémy provozované zaručovateli:
URL
Název systému
typ použití
poznámky
software
Jak od CAcert získáte svůj klientský certifikát
Než Vám budou uvedené weby fungovat, musíte si vytvořit klientský certifikát a importovat ho do svého webového prohlížeče.
Přihlaste se k webu CAcert na Přihlášení heslem (nebo Přihlášení certifikátem, když už klientský certifikát máte) a zvolte "Klientské certifikáty -> Nový".
- Vyberte svoji výchozí (hlavní) e-mailovou adresu a stiskněte "Další". Může to být Vaše jediná adresa, přesto je nutno ji zaškrtnout.
- Máte-li dostatek bodů zaručení (AP), můžete do certifikátu uvést své jméno. Vyberte je.
- Pokud se chcete přihlašovat do služby CAcert tímto certifikátem, zaškrtněte příslušné políčko.
Zkontrolujte, zda je vybrána možnost Podepsat kořenovým certifikátem třídy 3.
- Vyberte vhodný algoritmus otisku (hašovací alg.).
V případě potřeby vyberte možnost Podepisování kódu a/nebo Přidat ID pro přihlášení jedním heslem.
Otevřete CSR Generator website na nové kartě a postupujte podle pokynů.
- Vložte vytvořený CSR do velkého textového pole. Přijměte CCA a klikněte na tlačítko Další.
Pokračujte podle pokynů.
- Vyzkoušejte si to na jedné z výše uvedených stránek.
- Nezapomeňte si vytvořit bezpečnou zálohu certifikátu (včetně soukromého klíče, tedy souboru P12).
Podrobný návod na získání klientského certifikátu CAcert pomocí programu správy certifikátů XCA napsal Stefan Thode pod hlavičkou Podpory [support(zavináč)cacert.org]. Český překlad tohoto dokumentu je zde.
Co klientský certifikát obsahuje, je podrobně popsáno dokumentem Přehled postupů certifikace (Certification Practise Statement, CPS), jehož český překlad je zde.
Jak získat více e-mailových adres pro svůj klientský certifikát CAcert
- Přihlaste se k webu CAcert (viz předchozí sekce - přihlášení heslem nebo certifikátem)
- Zvolte E-mailové účty - Zobrazit
- Jsou zde definovány všechny e-mailové adresy, které chcete přidat ke svému klientskému certifikátu?
- Pokud ne, přidejte ke svému účtu CAcert pomocí "E-mailové účty - Přidat" tolik e-mailových adres, kolik chcete později přidat ke svému klientskému certifikátu CAcert.
- Ověřte přidané e-mailové adresy. Ke klientskému certifikátu mohou být přidány jen ověřené e-mailové adresy.
Jak získat klientský certifikát CAcert někoho jiného
- Pro použití zabezpečeného e-mailu vyžaduje S/MIME, abyste získal(a) certifikát každé osoby jednotlivě. Typicky požádáte tu osobu, aby Vám poslala digitálně podepsaný e-mail. Její certifikát uložený v podepsané zprávě bude pochopitelně obsahovat POUZE VEŘEJNÝ klíč. Nenuťte ji, aby Vám předala nějaký svůj záložní soubor se svým privátním klíčem.
Další informace viz Servery klíčů klientských certifikátů.
Aplikace
- Svoje klientské certifikáty použijete v mnoha aplikacích k mnoha účelům. Zde jsou některé příklady:
E-mailové klienty
Osobní e-mailové certifikáty - jak je konfigurovat a jak je používat.
Webový prohlížeč
Můžete se přihlásit na kterýkoli web OpenID s identifikací svým klientským SSL certifikátem CAcert a používat jakýkoli OpenID software nebo službu, která podporuje SSL Certifikáty, například certifi.ca. Viz Přehled OpenID, kde najdete více o vyvíjejícím se přístupu CAcertu k němu.
Klientský certifikát můžete použít i ve svém webovém prohlížeči k přímé identifikaci při přihlášení k některým webům. CATS Výzva zaručovatele je jedním z nich; tento web vyžaduje, abyste měli klientský certifikát CAcert. Viz výše, kde je jich uvedeno více.
Zrady
- Použití klientských certifikátů k přihlašování je (technicky) bezpečnější, než použití hesel, ale jsou tu nějaké nečekané zrady:
- Certifikát vyprší každé 2 roky (platí pro zaručené členy), takže pak musíte být schopni se přihlásit k CAcert a získat nový (obnovit ho).
Certifikáty (přesněji: privátní klíče uložené ve Vašem prohlížeči) by měly mít zálohu. Zvláště pak, představují-li jediný způsob, jak získat přístup k některým webům; a ten přístup ztratíte, dojde-li k poškození hardwaru nebo softwaru Vašeho počítače.
Prohlížeče jako Firefox zacházejí s více certifikáty obzvlášť špatně. Měl(a) byste raději mít jeden a pouze jeden certifikát, protože ten prohlížeč v současném stavu skutečně nemůže poskytnout vyhovující rozhraní, abyste spárovali navštěvované weby se správným certifikátem.
- Použití certifikátů znamená, že předkládáte navštěvovanému webu životaschopnou a ověřenou identitu; znamená to, že web může poznat, kdo jste a tu informaci si uložit. To představuje určitý vliv na soukromí.
- Weby nemají často jasno v tom, jak implementovat klientské certifikáty. Je pravda, že to není snadné, protože v jejich podkladové architektuře (například operačních systémech) bývají chyby. Některé weby trvají pouze na klientských certifikátech a dají Vás na divné místo, když je nemáte. Jiné weby zkoušejí směšovat použití klientských a ne-klientských certifikátů a otevírají tak dveře zmatku a závadám bezpečnosti. V současnosti neexistuje jediné správné řešení.
- Ze všech těchto důvodů byste si měl(a) heslo pro CAcert napsat a uschovat na bezpečném místě.
Okamžité zprávy (Instant Messaging, IM)
- Většina běžných klientů Instant Messaging pro Jabber, MSN, AIM, ICQ, atd. standardně Vaše zprávy nešifruje. Ale někdy je můžete zašifrovat Vy.
- Příklady
- S/MIME (CAcert certifikát) - plánován pro Jabber; předpokládá se spolupráce s AIM
- GPG/PGP - psí [asi řecké písmeno] Jabber klient; kopete
OTR - Pidgin (původně známý jako Gaim); adium; Jabber Proxies
Poznámka: proskočily zprávy, že AOL uplatňoval právo použít Vaše zprávy AIM k libovolným účelům, ale prý to bylo nedorozumění: http://www.snopes.com/computer/internet/aim.asp
OpenSSH
- Použití Vašeho klientského certifikátu CAcert k přihlášení pomocí SSH (v Linuxu):
- vygenerujte si klientský certifikát
- exportujte ho do souboru typu PKCS12 ( například do /home/user/MyCert.P12 )
- konvertujte ho do PEM ( openssl pkcs12 -in /home/user/MyCert.P12 -out /home/user/.ssh/id_rsa )
- Poznámka: PEM je způsob kódování, Privacy Enhanced Mail (e-mail s vylepšeným soukromím); je to kontejner, který může obsahovat buď jenom veřejný certifikát, nebo celý řetězec certifikátů včetně kořenových a privátního klíče.
- zabezpečte soubor PEM, který jste si vytvořil(a) ( chmod 600 /home/user/.ssh/id_rsa )
- vytvořte veřejný klíč použitelný pro SSH ( run ssh-keygen -y )
- vložte výstup ( ssh-rsa .... ) do .ssh/authorized_keys2 na každém serveru, kde chcete tento klíč použít
Šifrovací aplikace
Poznámka: CAcert neposkytuje podporu pro následující produkty; my pouze vydáváme certifikáty!
Balíček open-source pro více platforem: Cryptonit
Podepisování dokumentů
OpenOffice od verze 2.0 je schopen podepisovat dokumenty. Čtětewiki pro OpenOffice.
- Podepisování dokumentů PDF
Adobe Reader XI: menu Vyplnit a podepsat -> Práce s certifikáty -> Podepsat pomocí certifikátu; dialog Podepsat dokument:
- Vybrat certifikát k podpisu
- Možnost Zamknout dokument po podepsání
- tlačítko Podepsat
SVN
Viz Janův Průvodce klientskými certifikáty SVN, což je malý průvodce krok za krokem, jak nastavit klientské certifikáty v:
- OpenSSL, GNUTLS nebo Firefox pro vytvoření certifikátu
- Klient příkazového řádku Subversion (Podvraťák), TortoiseSVN nebo Eclipse jako klienty
Všimněte si také dokumentu Poznámky místního sysadmina, a nějaké poznámky jsou i v BirdShack wiki (už je zase on-line).
OpenSSL
Modifikace softwaru pro použití klientských certifikátů
Není v podstatě snadné používat klientské certifikáty, pokud je software na straně serveru skutečně nepřijímá a nepoužívá. To znamená, že potřebujeme získat mnoho takových běžících serverů a dokumentovat metody, kterými by se ostatní řídili. Tato sekce představuje index nám známých zkušeností. Můžete nám s tím pomoci: nastavte svůj systém pro používání klientských certifikátů a dokumentujte, jak to šlo!
OpenID
Jestliže Vaše webová aplikace nebo celý web podporuje OpenID, mohou lidé použít server OpenID, který podporuje použití jejich klientských certifikátů CAcert, když používají Vaši webovou aplikaci nebo web. Viz Přehled OpenID - poskytovatelé a informace.
Apache
Viz Návod k Apache, který napsal DanielBlack, o tom, jak nastavit Apache pro práci s klientskými certifikáty.
dotProject alternativní pohled: MarkusWarg
Diskusní fórum phpBB (verze 3)
- Můžete nechat uživatele svého diskusního fóra přihlašovat se certifikáty. Doplnění původního kódu je jednoduché (prosím požádejte komunitu phpBB udělat z toho standardní funkci). Přidejte k plug-inu své autority tento kód (standardně includes/auth/auth_db.php)
function autologin_db() { global $db, $config; if ($_SERVER[SSL_CLIENT_VERIFY] == "SUCCESS") { $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_email = '" . $db->sql_escape($_SERVER[SSL_CLIENT_S_DN_Email]) . "'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row) { return $row; } } return array(); }
Microsoft Internet Information Server 8 na systému Windows Server 2012
Předpokladem je Windows server 2012 s nainstalovaným IIS (Microsoft Internet Information Server) verze 8.
Prvním krokem je získat a instalovat serverový certifikát CAcert a samozřejmě kořenové certifikáty na server. Serverové certifikáty se ovládají z položky webového serveru v levém panelu nástroje správy IIS8, v horní části. Po výběru této položky se v prostředním panelu objeví ikony funkcí. Poklepejte "Certifikáty serveru". Pak lze v pravém panelu nebo v menu akcí vytvořit žádost o certifikát, (mimo tento nástroj) ji předložit CAcert k podpisu a (opět v nástroji správy) dokončit instalaci získaného certifikátu jeho propojením s privátním klíčem.
Standardní port pro SSL spojení je 443. Web provozovaný na serveru IIS-8 potřebuje mít definovanou vazbu: HTTPS - serverový certifikát - port (443). To zařídíte ve vlastnostech kořene webu, který chcete provozovat, v položce "Vazby...". Jestliže chcete mít web přístupný pouze protokolem HTTPS, definujte pouze vazbu https (na standardní port 443) a ne http (na standardní port 80). Přiřaďte sem serverový certifikát získaný od CAcert.
Jestliže chcete povolit přístup na svůj web/virtuální adresář pouze držitelům certifikátů (v tomto případě) CAcert, kteří nemají v systému účet a jsou tedy jinak anonymní, musíte u webů/virtuálních adresářů jim určených povolit anonymní přístup v položce (pod ikonou) "Ověřování". Těmto uživatelům postačí k přihlášení jejich klientský certifikát.
Jestliže chcete dát přístup těm uživatelům, kteří
- mají klientský certifikát (v tomto případě) Cacert, a zároveň
- mají v systému uživatelský účet,
pak již nejde o anonymní přístup a je vhodné ho zakázat jak pro celý web, tak pro jeho funkční adresáře (ty, k nimž budou uživatelé přistupovat). Proto u webů/virtuálních adresářů jim určených zakažte v položce (pod ikonou) "Ověřování" anonymní přístup a povolte pouze "Ověřování systému Windows". Po prokázání klientským certifikátem se budou muset ještě přihlásit svým uživatelským jménem a heslem.
Jako poslední krok otevřete v položce webu a jeho adresářů (pod ikonou) "Nastavení SSL". Zde:
- zaškrtněte možnost "Požadovat protokol SSL" a
- zvolte "Vyžadovat" klientské certifikáty.
Tím je webový server připraven. Jestliže se na něj obrátíte jako uživatel klientským webovým prohlížečem, který:
- použije protokol https,
- má instalovány kořenové certifikáty CAcert,
- Váš klientský certifikát od CAcert je platný (můžete jich mít více),
vyžádá si server platný/platné certifikát(y), kterým(i) se klient může prokázat (tj. vydané tou CA - v tomto případě CAcert -, která vydala i používaný serverový certifikát). Uživateli, tedy Vám, se objeví dialogové okno prohlížeče, kde vyberete a/nebo potvrdíte svůj příslušný klientský certifikát. Vyberete-li certifikát vydaný stejnou CA, jako certifikát serveru, je-li tento Váš klientský certifikát platný a je-li mezi jeho účely i přihlášení certifikátem (prokázání Vaší identity vzdálenému počítači), pak se k tomuto webovému serveru přihlásíte.
Ve všech ostatních případech obdržíte chybové hlášení, že přístup k serveru byl zamítnut.
Při pokusu o přístup protokolem HTTP (bez použití SSL) se ohlásí, že stránku nelze zobrazit. Je to tím, že jsme nevytvořili vazbu http - port 80.
Povolení klientských certifikátů pro .project
Zajímá-li Vás sledovat, jak vytvořit nástroj Open Source Project Management .project (http://www.dotproject.net) pracující s klientskými certifikáty, podívejte se na Technologii, bázi znalostí, dotProject.
Časté otázky a Různé - klientské certifikáty - řešení problémů
Můj prohlížeč Internet Explorer hlásí chybu číslo "-2146885628" (nebo podobné)
- Skoro všechna chybová hlášení ohledně instalací certifikátů jsou výsledkem toho, že lidé nemají odpovídající privátní klíč, nebo u přihlášení certifikátem není možno spárovat klíč s platným certifikátem přijatelným pro CA.
Důvodem je v zásadě, že si lidé reinstalují na svém počítači různé věci (komponenty, aplikace,...), nebo střídají různé prohlížeče a neuvědomují si, že my neudržujeme kopie privátních klíčů, které by si mohli později stáhnout z našeho webu spolu se svým certifikátem.
Kde je můj privátní klíč? Jak ho mohu použít na jiném počítači?
Váš privátní klíč je vygenerován Vaším prohlížečem, tedy UVNITŘ Vašeho prohlížeče, když požadujete nový certifikát od CAcert. Takto CAcert nikdy nedostane Váš privátní klíč do svého vlastnictví. Pro Vás to má ten důsledek, že pro práci se získaným certifikátem musíte být na stejném stroji a se stejným prohlížečem, jako když jste vytvářeli počáteční žádost o certifikát; jen tak máte přístup k odpovídajícímu privátnímu klíči. Proto si musíte pamatovat, zda to byl Váš počítač v zaměstnání ("pracovní stanice"), nebo Váš "domácí" počítač.
[Toto je zároveň půvab celé metody RSA a poučka k pamatování: "Privátní klíč nesmí*) opustit počítač, kde vznikl." *) jen výjimečně z uložené zálohy. Také je dobré vědět, že z veřejného klíče nelze odvodit privátní klíč a naopak - to již z principu metody RSA (zkratka pochází z příjmení tří autorů: Ron Rivest, Adi Shamir and Leonard Adleman).]
- Vaše klíče jsou obsaženy v něčem, co se nazývá "úložiště" klíčů. Můžete exportovat páry klíčů (veřejný+privátní) ze svého úložiště do souboru a nepovinně (ale plně doporučeno!) je zabezpečit heslem. To lze typicky provést v sekci "Správa certifikátů" Vašeho prohlížeče (například Firefoxu) a pak si pořídit "zálohu" Vašeho klíče. Tak vznikne soubor s příponou .p12 nebo .pfx - obsahuje celý pár klíčů [minimálně privátní klíč a certifikát s veřejným klíčem a s údaji o Vás].
- Můžete pak jít do jiné aplikace, která používá klientské certifikáty (například Thunderbird, IM, atd.) a použít její "Správu certifikátů" k "Importu" předtím vytvořeného souboru .p12 - po zadání správného hesla bude nyní Váš veřejný a odpovídající privátní klíč k dispozici v nové aplikaci.
Je velmi zajímavé vygenerovat klíče a Váš certifikát CAcert na kartu "smartcard". Je to moudrý a dobrý způsob, jak ochránit Vaše klíče. Nezapomeňte však, že nebudete moci exportovat privátní klíč - viz Kryptografický hardware.
Obnova klientských certifikátů pomocí FireFoxu
Dnes jsem musel obnovit svůj aktivní klientský certifikát s pořadovým (sériovým) číslem cc9f, postupoval jsem takto:
- Šel jsem na web www.cacert.org
Přihlásil jsem se svým dnes ještě platným klientským certifikátem s poř. č. cc9f
Šel jsem do menu Klientské certifikáty, položky Zobrazit
Vybral jsem (zaškrtl) certifikát se sériovým číslem cc9f a stiskl tlačítko Obnovit
Až sem to šlo. Nefungovala však nabízená instalace do IE5, kopie/vložení ascii-kódovaného certifikátu do textového ascii souboru, jeho přejmenování na signedKeyfile.crt (později přejmenován -> new-pub-signed-11e7e.cer) a pokus o import do úložiště klíčů FireFox také nefungoval:
The downloaded signed key doesn't include the private key!!! (Stažený podepsaný klíč neobsahuje privátní klíč!)
a FireFox mi nedovolil importovat podepsaný klíč snadnou cestou
Potřebné kroky pro obnovu funkčnosti obnoveného certifikátu: (pro srozumitelnost budu nazývat "starý" klíč cc9f a nový klíč 11e7e, také odkazy na privátní a public [veřejný] klíč)
exportujte privátní klíč z "starého", stále existujícího a platného, neodvolaného klientského certifikátu cc9f do úložiště klíčů FireFoxu
uložte jako .p12 -> step1-export-priv-pub-key-cc9f.p12
- Konvertujte pomocí openssl soubor PKCS#12 (.pfx .p12), obsahující privátní klíč a certifikáty, do tvaru PEM
- Můžete přidat -nocerts pro výstup pouze privátního klíče, nebo -nokeys pro výstup pouze certifikátů.
openssl pkcs12 -in step1-export-priv-pub-key-cc9f.p12 -out step2-convert-priv-pub-to-priv-key-cc9f.pem -nodes -nocerts
Výsledek je v souboru step2-convert-priv-pub-to-priv-key-cc9f.pem, který obsahuje pouze privátní klíč od "starého" certifikátu cc9f, který musíme v dalším kroku sezdat s novým (obnoveným) podepsaným veřejným klíčem [z toho plyne, že se při obnově klíče nemění ani negenerují nové]
- Můžete přidat -nocerts pro výstup pouze privátního klíče, nebo -nokeys pro výstup pouze certifikátů.
- Sloučení priv + pub do nového souboru .pfx
openssl pkcs12 -export -out my-11e7e-Priv-Pub.pfx -inkey step2-convert-priv-pub-to-priv-key-cc9f.pem -in new-pub-signed-11e7e.cer -name "key11e7e"
Výsledný výstupní soubor je my-11e7e-Priv-Pub.pfx, který obsahuje privátní klíč z předchozího páru klíčů cc9f a veřejný klíč z obnoveného, podepsaného klíče s novým sériovým číslem (zde 11e7e)
Nový "sloučený" privátní + veřejný klíč my-11e7e-Priv-Pub.pfx můžete nyní použít pro zpětný import do Vašeho prohlížeče, e-mailových klientů a dalších programů
Nápomocný odkaz s užitečným popisem a několika uvedenými příkazy openssl: Jak konvertovat certifikáty mezi tvary PEM, DER, P7B/PKCS#7, PFX/PKCS#12
Kde je soubor PKCS12? - Mám pouze soubor PEM, který tvrdí, že je pouze pro "smartcard"
openssl pkcs12 -export -in cert.pem -inkey private.key -certfile /etc/ssl/certs/root.pem -name "Bob's CAcert" -out cert.p12
"Windows nemá dostatek informací k ověření tohoto certifikátu"
[Dotaz] Používám Windows 2000 a Outlook z Office 2000. Instaloval jsem svůj certifikát pomocí Internet Exploreru a šel jsem do Outlook -> Options -> Security -> Settings (vzhledem k zastaralosti verze: Outlook -> Možnosti -> Zabezpečení -> Nastavení; v Outlooku 2013 to odpovídá: Soubor -> Možnosti -> Centrum zabezpečení -> Nastavení centra zabezpečení -> Zabezpečení e-mailu), abych si tam vybral certifikát, který jsem si nainstaloval. Potíž tkví v tom, že když zkusím poslat digitálně podepsaný a zašifrovaný e-mail, dostávám chybovou hlášku, že certifikát není platný. Když se na něj v Outlooku podívám, hlásí se, že "Windows nemá dostatek informací k ověření tohoto certifikátu".
[Odpověď] Zdá se, že jste asi zapomněl na kořenový certifikát CAcert a/nebo ho sice máte, ale ještě jste mu nedal důvěryhodnost. Jeho kopii získáte na: https://www.cacert.org/index.php?id=3
- Jakmile ho nainstalujete, zkontrolujte, zda je u Vás důvěryhodný. To patrně vyřeší chybu týkající se Vašeho osobního certifikátu.
Nedaří se mi odeslat šifrovanou zprávu z Outlooku
- [Dotaz] Nedaří se mi odeslat šifrovanou zprávu z Outlooku. Jak na to?
- [Odpověď] Každý adresát, kterému chcete odeslat šifrovanou zprávu, musí mít ve Vašem Outlooku svoji položku kontaktu a v ní svůj veřejný certifikát. Abyste získal(a) veřejný certifikát osoby, jíž chcete poslat zašifrovanou zprávu, musíte od ní dostat digitálně podepsaný e-mail.
Když dostanete podepsanou zprávu, pravým klikem myší na adresu odesilatele (ne na samotný e-mail) zobrazíte menu. Vyberte "Přidat do kontaktů". Tím si instalujete veřejný certifikát pro posílání šifrovaných zpráv dotyčné osobě. Certifikát uvidíte v okně kontaktu, záložce Certifikáty nahoře. [OL10-13: Při přidání do kontaktů se zapíše certifikát do úložiště Windows, MMC -> Certifikáty -> Certifikáty - aktuální uživatel -> Ostatní uživatelé -> Certifikáty; odtamtud ho můžete exportovat do souboru, je-li to potřebné.]
- Je-li tato osoba již ve Vašem seznamu kontaktů, postupujte takto:
- Klikněte pravým tlačítkem myší na adresu odesilatele (ne na samotný e-mail). Zvolte "Přidat do kontaktů. Zvolte záložku certifikátů, označte certifikát a zvolte Exportovat. Změňte případně název a vyberte umístění které si zapamatujete, zadejte heslo a uložte soubor. Zavřete nový kontakt a neukládejte změny (tím odstraníte duplicitní kontakt). Kliknutím pravým tlačítkem myši na adresu odesilatele (jistě už poznáváte postup) otevřete kontakt. Vyberte záložku certifikátů a importujte certifikát s použitím cesty, názvu a hesla souboru, který jste prve vytvořil(a). Teď budete schopni poslat tomuto adresátovi šifrované zprávy. (On si je dešifruje svým privátním klíčem.)
[OL10-13: Když otevřete kontakt osoby z "Adresáře" a na kartě "Kontakt" stisknete "Certifikáty" (v závislosti na druhu kontaktu také "Zobrazit -> Certifikáty), uvidíte v seznamu, zda se certifikát ze zprávy přidal. Kromě správnosti certifikátu samotného, důvěryhodnosti vydavatele atd. musí být také dostupný seznam odvolaných certifikátů - CRL. Outlook v něm potřebuje zjistit, zda nebyl certifikát odvolán. Když je vše v pořádku, uloží se certifikát do kontaktu automaticky.]
- Jakmile je Váš klientský certifikát zaveden, vytvoří Outlook profily pro Váš odesílající účet. Při vytváření e-mailové zprávy uvidíte v odesílacím menu dvě tlačítka: (Podepsat = obálka se stužkou [OL10-13: stužka], Šifrovat = obálka se zámkem [OL10-13: zámek]). Pro podpis e-mailu použijte tlačítko "Podepsat". To odešle e-mail v prostém textu, ale připojí k němu Váš veřejný certifikát. Pro zašifrování e-mailu použijte tlačítko "Šifrovat". To zašifruje e-mail veřejným klíčem adresáta z jeho certifikátu uloženého ve Vašem souboru kontaktů pod záložkou certifikátů. Takový e-mail dešifruje a přečte jen osoba s příslušným privátním klíčem, tedy by to měl být pouze Váš adresát.
Můj certifikát je v prohlížeči, ale není v mém e-mailovém klientu - co teď?
- [Dotaz] Zkusil jsem instalovat svůj e-mailový certifikát do Mozilly Thunderbird (naposledy dnes) a jaksi nemohu podepsat e-mail. Thunderbird tvrdí, že musím napřed nastavit své certifikáty (ale to jsem udělal! a ověřil jsem, že tam jsou, včetně kořenového od CA) a chci-li zjistit, jak to udělat - a to ovšem chci - dialog zmizí a nestane se nic.
[Odpověď] Potřebujete certifikát exportovat ze svého prohlížeče i s privátním klíčem; importovat pouhý certifikát je jen polovina informací, potřebných k zašifrování/podepsání e-mailů. CAcert nikdy nedostává (ani nevyžaduje) kopii Vašeho privátního klíče. (Pro více podrobností viz téma 3.)
Jak ve Vašich webových aplikacích umožnit identifikaci klientským certifikátem
Zde je jiný příklad PHP obsahující podrobnou konfiguraci Apache.
- Bohužel identifikace klienta patrně nefunguje, když je v Apache2 použita možnost SSLCACertificatePath. To je ale zřejmě standardní konfigurace například v Ubuntu. Zde je oprava:
- změňte
- SSLCACertificatePath /etc/ssl/certs/
- na
- SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt
- ve Vašich konfiguračních souborech pro Apache, a bude to zase fungovat.
Potřebujete-li pro svůj webový server balíček CA-Bundle, můžete ho od CAcert získat zde: http://www2.futureware.at/svn/sourcerer/CAcert/ca-bundle.zip
- [Dotaz]: Jak jednoduše přidám CAcert do svého existujícího balíčku CA-bundle?
- [Odpověď]: Získejte kořenové certifikáty CAcert (jak třídy 1, tak třídy 3), otevřete je v textovém editoru a kopírujte/vložte je do ca-bundle, například na konec souboru.
Pro následující příklad musíte nastavit ve své konfiguraci Apache SSLVerify na "optional" (volitelné) nebo "required" (povinné). "Povinné" přiměje prohlížeč ukázat certifikát a neumožní přístup k Vhost (nebo adresáři), pokud klient nepředloží platný certifikát. "Volitelné" přijímá certifikáty nepovinně, takže klient se může vždy dostat k Vhost, bez nutnosti mít certifikát. Když nastavíte SSLOptions na +CompatEnvVars +StdEnvVars, pak mod_ssl dá všechny zajímavé podrobnosti do proměnných prostředí, odkud jsou snadno dostupné z jakéhokoli programovacího jazyka:
$ca=""; if($ENV{'SSL_CLIENT_VERIFY'} and $ENV{'SSL_CLIENT_VERIFY'} eq "SUCCESS") { if($ENV{SSL_CLIENT_I_DN_OU} eq "http://www.cacert.org") { $ca="CAcert"; } if($ca and $ENV{SSL_CLIENT_S_DN_Email}) { $auth="email+clientzert"; $authuser=$ENV{SSL_CLIENT_S_DN_CN}; $authemail=$ENV{SSL_CLIENT_S_DN_Email}; print "Welcome $ENV{SSL_CLIENT_S_DN_CN} (<a href=\"mailto:$ENV{SSL_CLIENT_S_DN_Email}\">)!<br/>"; }
Chci použít zprostředkující certifikát třídy 3 ve starší verzi Windows
Máte-li problémy s použitím nového zprostředkujícího certfikátu třídy 3 a s vytvářením klientských certifikátů třídy 3, pak pravděpodobně Váš starší systém Windows (Windows XP, Windows 2003) nemá instalovánu opravu Microsoft Base Smart Card Crypto Provider (KB909520).
- KB909520 instaluje podporu pro SHA256 a další kryptografické poskytovatele, jako AES128, AES192, AES256 a další.
Více informací o kryptografických poskytovatelích pod Windows - čtěte článek knihovny MSDN: CryptoAPI poskytovatelé kryptografických služeb
iOS mě nechce nechat vybrat klientské certifikáty CAcert pro digitální podpis/zašifrování e-mailů
Nejsem schopen vybrat klientské certifikáty podepsané CAcert pro S/MIME podepisování a šifrování e-mailů. Bylo vytvořeno více certifikátů (vygenerovaných pomocí Internet Exploreru 10.0.10 a Opery Next 17.0; ať s vloženým jménem nebo bez jména; třídy 1 nebo třídy 3) různými způsoby, včetně metody iPhone konfigurační utility. Tato metoda se podobá zde popisované metodě, která mi nefungovala, protože konfigurační utilita mě nenechala vybrat žádné certifikáty v kroku 30 a 31.
- V novém pokusu jsem použil Firefox 24.0 k vygenerování certifikátu a exportoval jsem ho do souboru .p12 jeho správcem certifikátů. Po přenosu tohoto souboru do svého iPhone jsem mohl certifikát instalovat a využít ho k podpisu a šifrování e-mailů.
Prázdné údaje o způsobech použití klientského certifikátu
- [Dotaz]: Klientský certifikát s mým jménem je vydaný na 2 roky. Avšak v popisu "Tento certifikát je určen k následujícímu účelu" nemám uvedeno žádné použití.
- V Podrobnostech, poli "Použití klíče" (Certificate Key Usage) - prohlíženo v Chrome a [Internet Exploreru] - vidím tyto položky:
Critical [ikona se žlutým označením ]
- Signing [Digitální podpis]
- Key Encipherment [Šifrování klíče]
- Key Agreement [Shoda klíčů (a8)]
- a v poli "Použití rozšířeného klíče" (Extended Key Usage) tyto položky:
- Not Critical [ikona se zeleným označením "šipka dolů"]
- Email Protection (OID.1.3.6.1.5.5.7.3.4) [Zabezpečení e-mailu (1.3.6.1.5.5.7.3.4)]
- TLS WWW Client Authentication (OID.1.3.6.1.5.5.7.3.2) [Ověření klienta (1.3.6.1.5.5.7.3.2)]
- Microsoft Encrypting File System (OID.1.3.6.1.4.1.311.10.3.4) [Systém souborů EFS (1.3.6.1.4.1.311.10.3.4)]
- Microsoft Server Gated Cryptography (OID.1.3.6.1.4.1.311.10.3.3) [Neznámé použití klíče (1.3.6.1.4.1.311.10.3.3)]
- Netscape International Step-Up (OID.2.16.840.1.113730.4.1) [Neznámé použití klíče (2.16.840.1.113730.4.1)]
- Je zvláštní, že přehled (v Chrome) má seznam prázdný. [V IE10 po otevření certifikátu na kartě "Obecné" je všech 5 účelů uvedeno.] Je to v pořádku?
- [Odpověď (BenBE)]: Pole "Použití klíče" (Key Usages) a "Použití rozšířeného klíče" (Extended Key Usages) [česky by mělo být: "Rozšířené použití klíče"] jsou skoro ve všech implementacích X.509 obvykle ignorována u použití pro TLS, protože certifikační autority měly v historii určité potíže vložit do vydávaných certifikátů správné atributy použití. To odvádí od někdy úplně nekompatibilního způsobu, jakým tyto atributy interpretují "konsumenti X.509", jako prohlížeče nebo e-mailové klientské programy. Zatímco některé vyžadují, aby byl určitý příznak nastaven, jiné stejný certifikát s tímto příznakem odmítnou.
Protože většina klientských programů používá zabudované měřítko, je pro certifikační autoritu nejkompatibilnějším způsobem, jak to zvládnout, vložit seznam různých druhů použití: identifikace klienta pro TLS Web, ochrana e-mailů, šifrování dokumentů/kódu/objektů, šifrování systému souborů a dalších. Třebaže to není dokonalé (například podepisování kódu MUSÍ být normálně vydané samo sebou - vyžadováno Microsoft AuthentiCode), je jen malá šance dokázat to, aniž bombardujete uživatele dlouhým seznamem možností či profilů, z nichž si musí vybrat (většina nástrojů nemá snadný přístup k nastavení těchto příznaků; XCA [X Certificate Authority, X Certificate and Key management, program pro práci s X.certifikáty a klíči] je užitečnou výjimkou).
- Takže zpět k otázce: Během času se seznam vložených příznaků v našich certifikátech změnil a to se odráží v seznamu příznaků. Například v kořenovém certifikátu starém 1 rok vidím příznaky pro: šifrování e-mailů, identifikaci klienta, serverem hradlované šifrování (Server Gated Cryptography) a šifrovaný systém souborů Microsoftu. Ač jsou zde i jiné, často nejsou v praxi potřebné, protože například identifikace klienta pro TLS Web (TLS Web Client Authentication) jich většinu pokrývá, když ji server kontroluje (většinou ne). Podobný seznam je i v certifikátu třídy 3 pro podepisování (mimochodem, pro kompatibilitu byste ho měli upřednostňovat). Je také třeba říci, že použití pro "Server Gated Cryptography" je zastaralé a již nepotřebné. Zkrátka: většina programů použití nekontroluje a pokud ano (MS Windows a MS Outlook), najdou potřebná rozšíření pro všechny případy souvisejícího použití. Narazíte-li na závažnější záležitosti, oznamte nám je, abychom mohli přizpůsobit obecný profil.
- [Jelikož tyto údaje v obecné záložce (přehledu) svých klientských certifikátů mám, domnívám se, že jde o chybu Chrome - pozn. překl.]
Jak mohu použít klientské certifikáty jako SSH?
- Pro Vaši konfiguraci Apache:
SSLOptions +ExportCertData +CompatEnvVars +StdEnvVars SSLVerify optional_no_ca
- Aplikace:
$ca=""; if($ENV{'SSL_CLIENT_VERIFY'} and $ENV{'SSL_CLIENT_VERIFY'} eq "SUCCESS") { echo $ENV{SSL_CLIENT_KEY}; }
Další odkazy
Návod pro Apache, který napsal Daniel Black o tom, jak nastavit Apache pro klientské certifikáty.
dotProject - alternativní pohled Markuse Warga
Iangova vysvětlující řeč o klientských certifikátech a SSO - Staronová záležitost pro Fosdem 2010 (SSO = Single Sign-On, jednoduché přihlášení).
Presentace snímků (slides) na ODP a její PDF formát.
youTube video proslovu.
Eccentric Project od Guida Witmonda používá klientské certifikáty na webu s vlastní CA, konfigurovaném pro identifikaci všech členů všem jiným členům na základě pseudonymů.
Příspěvky a úvahy
- YYYYMMDD-Vaše_jméno
Text / Vaše příspěvky, úvahy a úryvky e-mailů - prosím sem
- YYYYMMDD-Vaše_jméno
Text / Vaše příspěvky, úvahy a úryvky e-mailů - prosím sem