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ů.

  1. Instalace OpenSSL

    Nejprve si nainstalujte nástroj OpenSSL, pomocí kterého certifikáty vytvoříme. Doporučujeme například verzi "Light" pro Windows:

    https://slproweb.com/download/Win64OpenSSL_Light-3_5_0.msi

  2. 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
  3. 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
  4. 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.