Jak nastavit a používat vlastní TLS certifikáty
Tento návod je určen pro pokročilé uživatele a správce systému, kteří chtějí pro šifrování komunikace mezi klientem a serverem využít vlastní bezpečnostní certifikáty namísto výchozího vestavěného certifikátu.
Základní informace o podpoře TLS v systému a jeho zapnutí ve výchozím režimu naleznete v kapitole Bezpečnost dat - Šifrovaná komunikace pomocí TLS 1.3.
1. Konfigurace vlastního certifikátu v Nexus.cfg
Pokud chcete použít vlastní certifikát, je třeba v souboru Nexus.cfg nastavit cesty k vygenerovaným souborům. Konfigurace se liší pro server a pro klientské stanice.
Pro maximální bezpečnost doporučujeme nastavit parametr TrustServerCert na hodnotu 0. Tím zajistíte, že klienti budou vždy ověřovat platnost serverového certifikátu proti kořenovému certifikátu.
Příklad nastavení na serveru (v místě, kde běží AppServer):
Na serveru musí být vyplněny cesty ke všem třem klíčovým souborům: certifikátu serveru, jeho soukromému klíči a kořenovému certifikátu.
[TLS]
TrustServerCert=0
ServerCert=c:\cesta_k_certifikatum\ServerCert.pem
ServerKey=c:\cesta_k_certifikatum\ServerKey.pem
RootCert=c:\cesta_k_certifikatum\RootCert.pem
Příklad nastavení na klientech:
Na klientských stanicích stačí nakonfigurovat cestu ke kořenovému certifikátu, pomocí kterého budou ověřovat pravost serveru.
[TLS]
TrustServerCert=0
RootCert=c:\cesta_k_certifikatum\RootCert.pem
2. Vytvoření vlastních certifikátů (Windows)
Tato sekce je určena pouze pro Windows. Uživatelé Linuxu si s tvorbou certifikátů zpravidla poradí pomocí systémových nástrojů.
-
Instalace OpenSSL
Nejprve si nainstalujte nástroj OpenSSL, pomocí kterého certifikáty vytvoříme. Doporučujeme například verzi "Light" pro Windows:
-
Příprava konfiguračních souborů
Vytvořte si dva textové soubory s následujícím obsahem. Tyto soubory slouží jako šablona pro generování certifikátů.
Soubor č. 1: root-san.cnf
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no [ req_distinguished_name ] C = CZ ST = Prague L = Prague O = ExampleCorp s.r.o. OU = Certificate Authority CN = ExampleCorp Root CA [ v3_ca ] basicConstraints = critical, CA:true keyUsage = critical, keyCertSign extendedKeyUsage = serverAuth
Soubor č. 2: server-san.cnf
V sekci [alt_names] vyplňte všechny IP adresy a DNS názvy, pod kterými bude váš aplikační server dostupný pro klienty.
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [ req_distinguished_name ] C = CZ ST = Prague L = Prague O = ExampleCorp s.r.o. OU = Web Services CN = server.example.cz [ v3_req ] subjectAltName = @alt_names basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = serverAuth [ alt_names ] IP.1 = 127.0.0.1 IP.2 = 192.168.1.100 DNS.1 = localhost DNS.2 = MUJ-SERVER
-
Generování certifikátů pomocí příkazové řádky
Otevřete příkazovou řádku (nebo terminál, do kterého se OpenSSL nainstalovalo) v adresáři, kde máte uložené konfigurační soubory, a postupně spusťte následující příkazy:
a) Vygenerování kořenového certifikátu a klíče (Root)
openssl.exe req -x509 -newkey rsa:2048 -days 365 -nodes -keyout RootKey.pem -out RootCert.pem -config root-san.cnf -extensions v3_ca
b) Vygenerování žádosti o certifikát serveru a jeho klíče (Server)
openssl.exe req -new -nodes -newkey rsa:2048 -keyout ServerKey.pem -out ServerCSR.pem -config server-san.cnf
c) Podepsání certifikátu serveru kořenovým certifikátem
openssl.exe x509 -req -in ServerCSR.pem -days 365 -CA RootCert.pem -CAkey RootKey.pem -CAcreateserial -out ServerCert.pem -extensions v3_req -extfile server-san.cnf
-
Nasazení vygenerovaných souborů
Po úspěšném provedení příkazů vzniknou v adresáři nové soubory. Pro konfiguraci budete potřebovat tyto tři:
- ServerCert.pem
- ServerKey.pem
- RootCert.pem
Přesuňte tyto soubory na vhodné místo na serveru a na klientských stanicích (např. do sdílené a zabezpečené síťové složky) a v souboru Nexus.cfg vyplňte cesty k nim podle kroku 1 tohoto návodu.