Dnes přejdeme k praktické části. Začněme nastavením naší CA založené na plnohodnotné open source kryptografické knihovně openSSL. Tento algoritmus byl testován pomocí Windows 7.
S nainstalovaným openSSL můžeme přes příkazový řádek provádět různé kryptografické operace (např. vytváření klíčů a certifikátů).
Algoritmus akcí je následující:
Stáhněte si instalační distribuci openssl-1.1.1g.
openSSL má různé verze. V dokumentaci pro Rutoken bylo uvedeno, že je vyžadována verze openSSL 1.1.0 nebo novější. Použil jsem verzi openssl-1.1.1g. OpenSSL si můžete stáhnout z oficiálních stránek, ale pro snazší instalaci je potřeba najít instalační soubor pro windows na netu. Udělal jsem pro vás toto: slproweb.com/products/Win32OpenSSL.html
Posuňte stránku dolů a stáhněte si instalační program Win64 OpenSSL v1.1.1g EXE 63MB.
Nainstalujte do počítače openssl-1.1.1g.
Instalace musí být provedena podle standardní cesty, která je automaticky uvedena ve složce C: Program Files. Program se nainstaluje do složky OpenSSL-Win64.
Chcete-li nastavit openSSL tak, jak potřebujete, existuje soubor openssl.cfg. Tento soubor se nachází v cestě C:\Program Files\OpenSSL-Win64bin, pokud jste nainstalovali openSSL podle popisu v předchozím odstavci. Přejděte do složky, kde je uložen openssl.cfg a otevřete tento soubor například pomocí programu Notepad++.
Pravděpodobně tušíte, že certifikační autorita bude nějak konfigurována změnou obsahu souboru openssl.cfg, a máte naprostou pravdu. To vyžaduje přizpůsobení příkazu [ ca ]. V souboru openssl.cfg lze začátek textu, kde provedeme změny, najít jako: [ ca ].
Nyní musíme vytvořit adresář demoCA a podadresáře, jak je ukázáno v příkladu výše. A umístěte jej do tohoto adresáře podél cesty, která je uvedena v adresáři (mám /Users/username/bin/openSSLca/demoCA).
Je velmi důležité správně napsat dir - to je cesta k adresáři, kde bude umístěno naše certifikační centrum. Tento adresář musí být umístěn v /Users (tedy v účtu nějakého uživatele). Pokud tento adresář umístíte např. do C: Program Files, systém soubor s nastavením openssl.cfg neuvidí (alespoň u mě to tak bylo).
$dir - zde je nahrazena cesta zadaná v dir.
Dalším důležitým bodem je vytvoření prázdného souboru index.txt, bez tohoto souboru nebudou příkazy „openSSL ca …“ fungovat.
Musíte mít také sériový soubor, kořenový soukromý klíč (ca.key), kořenový certifikát (ca.crt). Postup získání těchto souborů bude popsán níže.
Připojujeme šifrovací algoritmy poskytované společností Rutoken.
Toto připojení probíhá v souboru openssl.cfg.
Nejprve si musíte stáhnout potřebné algoritmy Rutoken. Jedná se o soubory rtengine.dll, rtpkcs11ecp.dll.
Chcete-li to provést, stáhněte si Rutoken SDK: www.rutoken.ru/developers/sdk.
Rutoken SDK je vše, co existuje pro vývojáře, kteří chtějí Rutoken vyzkoušet. Existují samostatné příklady pro práci s Rutokenem v různých programovacích jazycích a jsou uvedeny některé knihovny. Naše knihovny rtengine.dll a rtpkcs11ecp.dll jsou umístěny v Rutoken sdk, v tomto pořadí, na umístění:
Velmi důležitý bod. Knihovny rtengine.dll, rtpkcs11ecp.dll nefungují bez nainstalovaného ovladače pro Rutoken. Rutoken musí být také připojen k počítači. (Instalace všeho, co potřebujete pro Rutoken, naleznete v předchozí části článku habr.com/en/post/506450)
Knihovny rtengine.dll a rtpkcs11ecp.dll lze uchovávat kdekoli v uživatelském účtu.
Cesty k těmto knihovnám zapisujeme do openssl.cfg. Chcete-li to provést, otevřete soubor openssl.cfg, vložte řádek na začátek tohoto souboru:
dynamic_path - musíte zadat svou cestu ke knihovně rtengine.dll.
MODULE_PATH - musíte nastavit cestu ke knihovně rtpkcs11ecp.dll.
Přidání proměnných prostředí.
Nezapomeňte přidat proměnnou prostředí, která určuje cestu ke konfiguračnímu souboru openssl.cfg. V mém případě byla vytvořena proměnná OPENSSL_CONF s cestou C:Program FilesOpenSSL-Win64binopenssl.cfg.
V proměnné path musíte zadat cestu ke složce, kde se nachází openssl.exe, v mém případě je to: C: Program FilesOpenSSL-Win64bin.
Nyní se můžete vrátit ke kroku 5 a vytvořit chybějící soubory pro adresář demoCA.
První důležitý soubor, bez kterého nebude nic fungovat, je sériový. Toto je soubor bez přípony, jehož hodnota by měla být 01. Tento soubor si můžete vytvořit sami a do něj napsat 01. Můžete si jej také stáhnout z Rutoken SDK po cestě sdk/openssl/rtengine/samples/tool/demoCA /.
Adresář demoCA obsahuje sériový soubor, což je přesně to, co potřebujeme.
Vytvořte kořenový soukromý klíč.
K tomu použijeme příkaz knihovny openSSL, který je nutné spustit přímo na příkazovém řádku:
Vytvoříme kořenový certifikát.
Chcete-li to provést, použijte následující příkaz knihovny openSSL:
openssl req -utf8 -x509 -key ca.key -out ca.crt
Upozorňujeme, že pro vygenerování kořenového certifikátu je nutný kořenový soukromý klíč, který byl vygenerován v předchozím kroku. Proto musí být příkazový řádek spuštěn ve stejném adresáři.
Vše má nyní všechny chybějící soubory pro kompletní konfiguraci adresáře demoCA. Vytvořené soubory umístěte do adresářů uvedených v bodě 5.
Budeme předpokládat, že po splnění všech 8 bodů je naše certifikační centrum plně nakonfigurováno.
V další části popíšu, jak budeme spolupracovat s certifikační autoritou, abychom splnili to, co bylo popsáno v předchozí část článku.