Nastavitev protokola HTTPS in potrdila
Od zunaj je prehod dosegljiv samo prek HTTPS, odjemalci pa potrdilo preverijo. Z
Gateway:Certificate prehod obnovljeno potrdilo prevzame brez ponovnega zagona; po želji Windows pri
tem uporabi hibridno postkvantno izmenjavo ključev.
Pregled rešitve
Prehod pri vsaki vzpostavitvi povezave TLS izbere tisto potrdilo z zasebnim ključem, ki je postalo
veljavno nazadnje (po imenu v shrambi potrdil sistema Windows ali iz datoteke), in najpozneje vsakih
30 sekund preveri, ali obstaja novejše. Obnovljeno potrdilo tako velja že za naslednjo povezavo,
obstoječe povezave pa obdržijo dosedanje. Za potrdilo javnega overitelja na delovnih mestih ni treba
nastaviti ničesar. Namestitveni paket vse to nastavi z GW_CERTIFICATE; to navodilo opisuje ročni
postopek. Vse nastavitve:
Konfiguracija: Gateway:Certificate.
Izvedba
- Potrdilo shranite pod „Local Computer“ > „Personal“ (
LocalMachine\My) – iz overitelja vašega podjetja ali prek Let's Encrypt (dbgwsvc-Zertifikat-LetsEncrypt.cmdv programski mapi namestitvenega paketa). - Računu storitve dodelite dovoljenje za branje zasebnega ključa (upravljanje potrdil > „All Tasks“ > „Manage Private Keys“). To opravi tudi
setup-host --certificate <Name>. Potrdilo in končno točko HTTPS vpišite v konfiguracijsko datoteko:
"Gateway": { "Certificate": { "Subject": "daten.example.com" } }, "Kestrel": { "Endpoints": { "Http": { "Url": "http://127.0.0.1:8434" }, "Https": { "Url": "https://0.0.0.0:8433" } } }HTTPS je na 8433, po zgledu 1433 SQL Serverja. Nešifrirani HTTP (8434) ostane na
127.0.0.1in je namenjen le razvoju, preizkusom in preverjanju delovanja. Nikoli ga ne vežite na naslov, ki ga dosežejo drugi računalniki: ključi in gesla bi se prenašali nešifrirano. HTTP in HTTPS si namenoma ne delita vrat: vrata, ki sprejemajo tudi nešifrirane povezave, bi pri SQL Serverju ustrezala neobveznemu šifriranju.V Linuxu ali z datoteko namesto shrambe:
"Certificate": { "File": "zertifikat/gateway.pfx", "Password": "env:WKL_GW_CERT_PASSWORD" }.V požarnem zidu Windows odprite vrata HTTPS, omejena na omrežja, iz katerih prihajajo odjemalci (
setup-host --firewallustvari enakovredno pravilo z omrežji iz--networks):New-NetFirewallRule -DisplayName 'Wkl.Data.Gateway HTTPS' -Direction Inbound -Protocol TCP ` -LocalPort 8433 -RemoteAddress 10.0.0.0/8 -Action Allow
Brez
-RemoteAddressso vrata dosegljiva iz vsakega omrežja, ki doseže strežnik.- Prehod znova zaženite. Pri poznejših obnovitvah potrdila ponovni zagon ni več potreben.
- Preverite z delovne postaje:
https://daten.example.com:8433/health/livev Edgeu brez opozorila o potrdilu odgovoriHealthy. MnožicaServiceStatusskrbniškega vmesnika navede imetnika, potek in preostale dni potrdila; 14 dni pred potekom sporočiwarn(Gateway:Certificate:WarnDays).
Po želji – postkvantna izmenjava ključev: kot skrbnik na strežniku in na delovnih postajah izvedite:
Enable-TlsEccCurve -Name 'X25519_MLKEM768' -Position 0 # na prvem mestu, sicer zmaga X25519
Prehod in gonilnik se tedaj dogovorita za TLS 1.3 z X25519MLKEM768; če nastavitev na eni strani manjka,
se oba vrneta na X25519. Pogoj je na obeh straneh različica sistema Windows, ki krivuljo pozna;
če je ne pozna, ukaz sporoči napako. Nastavitev velja za ves računalnik, torej za vsak program, ki uporablja
knjižnico TLS sistema Windows. Razveljavitev: Disable-TlsEccCurve -Name 'X25519_MLKEM768';
Get-TlsEccCurve prikaže seznam pred spremembo in po njej (Microsoft:
Enable-TlsEccCurve).
Napotki
- Lastno potrdilo (iz overitelja podjetja ali samopodpisano) mora biti na vsaki delovni postaji razdeljeno kot zaupanja vredno (pravilnik skupine). Gonilnik,
WklGatewayClientin Power Query ga preverijo; preverjanja ni mogoče izklopiti. - Če novo potrdilo ni veljavno, ostane v veljavi dosedanje, dnevnik pa navede razlog.
- Fiksno v Kestrelu: potrdilo je mogoče vpisati tudi pod
Kestrel:Endpoints:Https:Certificate(geslo prek spremenljivke okoljaKestrel__Endpoints__Https__Certificate__Password). Tako določeno potrdilo se zamenja šele s ponovnim zagonom,--urlspa takrat ne velja več.