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.
-
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:
-
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 = serverAuthSú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 -
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_cab) 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.cnfc) 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 -
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.