Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Navodila » Nastavitev protokola HTTPS in potrdila

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

  1. Potrdilo shranite pod „Local Computer“ > „Personal“ (LocalMachine\My) – iz overitelja vašega podjetja ali prek Let's Encrypt (dbgwsvc-Zertifikat-LetsEncrypt.cmd v programski mapi namestitvenega paketa).
  2. Računu storitve dodelite dovoljenje za branje zasebnega ključa (upravljanje potrdil > „All Tasks“ > „Manage Private Keys“). To opravi tudi setup-host --certificate <Name>.
  3. 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.1 in 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" }.

  4. V požarnem zidu Windows odprite vrata HTTPS, omejena na omrežja, iz katerih prihajajo odjemalci (setup-host --firewall ustvari 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 -RemoteAddress so vrata dosegljiva iz vsakega omrežja, ki doseže strežnik.

  5. Prehod znova zaženite. Pri poznejših obnovitvah potrdila ponovni zagon ni več potreben.
  6. Preverite z delovne postaje: https://daten.example.com:8433/health/live v Edgeu brez opozorila o potrdilu odgovori Healthy. Množica ServiceStatus skrbniškega vmesnika navede imetnika, potek in preostale dni potrdila; 14 dni pred potekom sporoči warn (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, WklGatewayClient in 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 okolja Kestrel__Endpoints__Https__Certificate__Password). Tako določeno potrdilo se zamenja šele s ponovnim zagonom, --urls pa takrat ne velja več.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/how-to/set-up-https-and-certificate.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille