====== Elektronický podpis ====== Elektronický podpis je způsob, jak bezpečně a ověřitelně podepisovat elektronické dokumenty. Umožňuje nahradit ruční podpis v digitálním světě a zajišťuje autenticitu a neměnnost dokumentu. ===== Elektronické podepisování dokumentů pomocí bankovní identity ===== Bohužel toto řešení nelze použít pro komunikaci s úřady. Nicméně pro podepisování dokumentů mezi firmami či jednotlivci mi přijde použitelné – je zdarma a jednoduché na použití. Postup je jednoduchý: nahraji dokument, pomocí bankovní identity jej podepíšu a následně podepsaný soubor stáhnu. Podepisování pomocí Bank ID zajišťuje tato služba: https://bankid.cz/lide/podepisujte/ Podrobnější informace najdete zde: https://www.lupa.cz/clanky/bankid-sign-elektronicky-podepsat-pomoci-bankovni-identity-muzete-uz-i-svuj-vlastni-dokument/ ===== Kvalifikovaný elektronický podpis ===== To je podpis, který už poslouží pro komunikaci se státní správou. Řešil jsem ho pro firmu. Budu jej používat v Linuxu a inspiraci čerpám z tohoto článku: https://www.root.cz/clanky/elektronicky-podpis-a-linux-v-roce-2021/ Soupis kroků pro získání certifikátu přes PostSignum: ==== Uzavření nové smlouvy pro poskytování certifikačních služeb ==== Postupoval jsem podle informací zde: https://www.postsignum.cz/pravnicke_osoby_instituce_firmy_organizace.html Vyplnil jsem formulář, odeslal ho datovou schránkou a nyní čekám na zpracování, abych mohl pokračovat dalšími kroky. ==== Podpis dokumentu seznam žadatelů ==== V dalším kroku jsem podepsal dokument seznam žadatelů. Tam uvádím konkrétní lidi, kteří budou na certifikátu. Opět jsem poslal datovou schránkou a další pracovní den mi přišlo podepsané. Na stránkách mají matoucí informaci, že když chci na certifikát, tak musím přinést na pobočku pošty (Czech POINT) podepsaný dokument Seznam žadatelů a Smlouvu o poskytování certifikačních služeb. Jenže tím, že jsem poslal oba dokumenty datovou schránkou a mám z jejich strany elektronicky podepsané, už nemusím nic takového na poštu nosit. Pro jistotu jsem na poštu volal a potvrzovali mi, že dokumenty už nepotřebuji. Takže poslední krok je vygenerování ID žádosti o certifikát a přijít na Czech POINT. ==== Vygenerování žádosti o certifikát ==== Protože jsem v Linuxu, tak mi nejde žádost vygenerovat z webových stránek. Musím vygenerovat certifikát pomocí OpenSSL, pak nahrát a když bude všechno v pořádku, přidělí mi ID žádosti a mohu jít na poštu. Tady je postup pro vygenerování certifikátu pomocí OpenSSL: **Generování žádosti o certifikát:** Přesunul jsem se do adresáře, kde budu chtít žádost o certifikát uložit. Nejprve jsem si vytvořil soubor openssl.cnf s tímto nastavením: [ req ] default_bits = 2048 prompt = no distinguished_name = dn req_extensions = req_ext [ dn ] C = CZ O = NÁZEV SPOLEČNOSTI ZE ŽÁDOSTI OU = ČÍSLO ZAMĚSTNANCE ZE ŽÁDOSTI CN = Petr Nosek emailAddress = EMAILOVÁ ADRESA ZE ŽÁDOSTI [ req_ext ] # Pokud chcete, aby se e‑mail zkopíroval i do SAN: subjectAltName = email:copy Samozřejmě jsem doplnil název společnosti, číslo zaměstnance a e-mailovou adresu dle žádosti. Podle žádosti má být nastaveno číslo zaměstnance na OU3, ale vypadá to, že by mohlo stačit OU na číslo zaměstnance. Uvidím, jestli se s tím poperou. Pak jsem spustil vygenerování certifikátu tímto způsobem: openssl req -out request.req -new -newkey rsa:2048 -keyout privatekey.key -config openssl.conf * **request.req**: soubor vygenerované žádosti o certifikát (název si můžete zvolit libovolně) * **rsa:2048**: bitová délka klíče (lze zvolit 2048 nebo 4096) * **privatekey.key**: záloha soukromého klíče (název je opět libovolný) Po zadání příkazu budete vyzváni k zadání hesla k soukromému klíči a následně k jeho potvrzení. V dalším kroku jsem nahrál soubor request.req pomocí tohoto webového formuláře: https://www.postsignum.cz/ulozeni_zadosti_o_certifikat.html A teď mohu jít na poštu, aby mě ověřili a certifikát mi potvrdili. Pro kontrolu informací obsažených v certifikátu mohu spustit tento příkaz: openssl req -in request.req -noout -text **Spárování klíčů:** Nejprve je nutné stáhnout certifikát ve formátu PEM. Certifikát doporučuji uložit do stejného adresáře, kde byla generována žádost o certifikát. Spusťte Terminál, přesuňte se do adresáře kde byla generována žádost a kde je uložen certifikát ve formátu PEM. Ve vybraném adresáři spusťte tento příkaz: openssl pkcs12 -export -out certifikat.p12 -inkey privatekey.key -in certifikat.pem * **certifikat.p12**: název výstupního souboru (libovolný) * **privatekey.key**: záloha soukromého klíče (název podle toho, jak jste jej pojmenovali) * **certifikat.pem**: stažený certifikát ve formátu PEM Po zadání příkazu budete vyzváni k zadání hesla k soukromému klíči. Následně zadáte heslo k vytvořenému záložnímu certifikátu (soubor .p12). Heslo bude nutné potvrdit. Čerpám z jejich oficiálního návodu: https://www.postsignum.cz/files/navody/openssl/ Certifikát pak nahraji zde: https://www.postsignum.cz/ulozeni_zadosti_o_certifikat.html ==== Podepisování dokumentů ==== Potřeboval jsem podepisovat a šifrovat e-maily pomocí svého PKCS#12 balíčku (.p12) na Ubuntu. Postupoval jsem podle následujících kroků: === Instalace nástrojů a vytvoření NSS databáze === Nejprve jsem nainstaloval balík `libnss3-tools`, který obsahuje nástroje `certutil` a `pk12util`: sudo apt update sudo apt install libnss3-tools Poté jsem vytvořil adresář pro databázi a inicializoval ji: mkdir -p ~/.pki/nssdb certutil -d sql:$HOME/.pki/nssdb -N * `certutil -N` slouží k inicializaci (nebo resetu) NSS databáze. === Import .p12 certifikátu === Naimportoval jsem svůj certifikát do databáze pomocí: pk12util -d sql:$HOME/.pki/nssdb -i cesta/k/vasemu_cert.p12 Po výzvě jsem zadal heslo, kterým je soubor `.p12` chráněn. Tento příkaz importuje jak privátní klíč, tak veřejný certifikát. === Import certifikačních autorit PostSignum === V Linuxu chyběly certifikační autority PostSignum, takže jsem je musel přidat ručně. Certifikáty jsem stáhl ze stránky: https://www.postsignum.cz/certifikaty_autorit.html == Import kořenového certifikátu (Root CA) == certutil -d sql:$HOME/.pki/nssdb \ -A \ -n "PostSignum Root QCA4" \ -t "C,C,C" \ -i postsignum_qca4_root.cer * `-n` je "přezdívka" certifikátu v databázi. * `-t "C,C,C"` znamená, že certifikát je důvěryhodnou autoritou pro CA, SSL i S/MIME. == Import podřízených certifikátů (SubCA) == Pro každý SubCA certifikát jsem postup opakoval. Například pro QCA4 SubCA: certutil -d sql:$HOME/.pki/nssdb \ -A \ -n "PostSignum QCA4 SubCA" \ -t "C,," \ -i postsignum_qca4_sub.cer * `-t "C,,"` značí důvěryhodnou CA, bez ověřování pro SSL a S/MIME, což pro zprostředkovatele stačí. Stejně jsem naimportoval i další certifikáty jako `postsignum_qca5_sub.cer`, `postsignum_vca4_sub.cer` atd. == Ověření importu == Ověřil jsem obsah NSS databáze: certutil -d sql:$HOME/.pki/nssdb -L Některé certifikáty (např. `postsignum_qca5_sub.pem`) jsem už do NSS databáze nemusel přidávat, protože nebyly potřeba. === Nastavení LibreOffice pro podepisování dokumentů === V LibreOffice jsem provedl nastavení NSS databáze: * Otevřel jsem *Nástroje → Možnosti → LibreOffice → Zabezpečení*. * Klikl jsem na *Cesta k certifikátům (Certificate Path)*. * Zvolil jsem *Vybrat NSS cestu…* a nastavil `~/.pki/nssdb`. * Potvrdil a restartoval LibreOffice. Po restartu LibreOffice načetl mou NSS databázi i s certifikáty. == Podepisování dokumentů == **PDF dokumenty:** Zvolil jsem **Soubor → Exportovat jako → Exportovat jako PDF**, pak v záložce **Digitální podpisy** vybral certifikát a zadal heslo. **ODF dokumenty (např. .odt):** V dokumentu jsem klikl na **Soubor → Digitální podpisy → Podepsat existující dokument**, opět vybral certifikát a zadal heslo. Oba postupy jsou popsány i v oficiální dokumentaci LibreOffice. Výsledkem je dokument s mým digitálním podpisem. === Nastavení Mozilla Thunderbird === == Instalace certifikačních autorit CA == zdroj: https://www.postsignum.cz/files/navody/inst_ca_thunderbird/index.html {{.:pasted:20250726-111913.png}} {{.:pasted:20250726-111918.png}} {{.:pasted:20250726-111929.png}} {{.:pasted:20250726-111933.png}} **Je potřeba postupně instalovat všechny certifikáty autorit.** {{.:pasted:20250726-111940.png}} == Přidání certifikátu == zdroj: https://www.postsignum.cz/files/navody/thunderbird/index.html {{.:pasted:20250726-112013.png}} {{.:pasted:20250726-112017.png}} {{.:pasted:20250726-112022.png}} {{.:pasted:20250726-112027.png}} {{.:pasted:20250726-112032.png}} Zde bude zobrazen nově naimportovaný certifikát. Pokud je vše v pořádku, potvrďte tlačítkem OK. {{.:pasted:20250726-112046.png}} {{.:pasted:20250726-112051.png}} Vyberte požadovaný certifikát a potvrďte jej tlačítkem OK. {{.:pasted:20250726-112111.png}}