Ako nastaviť a používať vlastné TLS certifikáty

Tento návod je určený pre pokročilých používateľov a správcov systému, ktorí chcú na šifrovanie komunikácie medzi klientom a serverom využiť vlastné bezpečnostné certifikáty namiesto predvoleného vstavaného certifikátu.

Základné informácie o podpore TLS v systéme a jeho zapnutí v predvolenom režime nájdete v kapitole Bezpečnosť dát - Šifrovaná komunikácia pomocou TLS 1.3.

1. Konfigurácia vlastného certifikátu v Nexus.cfg

Ak chcete použiť vlastný certifikát, je potrebné v súbore Nexus.cfg nastaviť cesty k vygenerovaným súborom. Konfigurácia sa líši pre server a pre klientske stanice.

Pre maximálnu bezpečnosť odporúčame nastaviť parameter TrustServerCert na hodnotu 0. Tým zaistíte, že klienti budú vždy overovať platnosť serverového certifikátu proti koreňovému certifikátu.

Príklad nastavenia na serveri (v mieste, kde beží AppServer):

Na serveri musia byť vyplnené cesty ku všetkým trom kľúčovým súborom: certifikátu servera, jeho súkromnému kľúču a koreňové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

Príklad nastavenia na klientoch:

Na klientskych staniciach stačí nakonfigurovať cestu ku koreňovému certifikátu, pomocou ktorého budú overovať pravosť servera.

[TLS]
TrustServerCert=0
RootCert=c:\cesta_k_certifikatum\RootCert.pem

2. Vytvorenie vlastných certifikátov (Windows)

Táto sekcia je určená iba pre Windows. Používatelia Linuxu si s tvorbou certifikátov spravidla poradia pomocou systémových nástrojov.

  1. Inštalácia OpenSSL

    Najprv si nainštalujte nástroj OpenSSL, pomocou ktorého certifikáty vytvoríme. Odporúčame napríklad verziu "Light" pre Windows:

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

  2. Príprava konfiguračných súborov

    Vytvorte si dva textové súbory s nasledujúcim obsahom. Tieto súbory slúžia ako šablóna na generovanie certifikátov.

    Súbor č. 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

    Súbor č. 2: server-san.cnf

    V sekcii [alt_names] vyplňte všetky IP adresy a DNS názvy, pod ktorými bude váš aplikačný server dostupný pre klientov.

    [ 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. Generovanie certifikátov pomocou príkazového riadka

    Otvorte príkazový riadok (alebo terminál, do ktorého sa OpenSSL nainštalovalo) v adresári, kde máte uložené konfiguračné súbory, a postupne spustite nasledujúce príkazy:

    a) Vygenerovanie koreňového certifikátu a kľúča (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) Vygenerovanie žiadosti o certifikát servera a jeho kľúča (Server)

    openssl.exe req -new -nodes -newkey rsa:2048 -keyout ServerKey.pem -out ServerCSR.pem -config server-san.cnf

    c) Podpísanie certifikátu servera koreňovým certifikátom

    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. Nasadenie vygenerovaných súborov

    Po úspešnom vykonaní príkazov vzniknú v adresári nové súbory. Na konfiguráciu budete potrebovať tieto tri:

    • ServerCert.pem
    • ServerKey.pem
    • RootCert.pem

    Presuňte tieto súbory na vhodné miesto na serveri a na klientskych staniciach (napr. do zdieľaného a zabezpečeného sieťového priečinka) a v súbore Nexus.cfg vyplňte cesty k nim podľa kroku 1 tohto návodu.