Přesměrování nešifrované komunikace na protokol HTTPS: Porovnání verzí

Z enTeam
Skočit na navigaci Skočit na vyhledávání
Založena nová stránka s textem „==Přesměrování nešifrované komunikace na protokol HTTPS==“
 
 
(Není zobrazeno 8 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
==Přesměrování nešifrované komunikace na protokol HTTPS==
==Nastavení HTTPS==
Pro zajištění bezpečnosti komunikace klientů s webovým rozhraním aplikace enTeam doporučujeme nastavit šifrovanou komunikaci pomocí protokolu HTTPS.<br>
Nastavení HTTPS se liší dle způsobu provozování webového rozhraní (služba OS Windows vs. aplikace provozovaná v IIS).
 
===Předpoklady===
Jediným předpokladem nastavení HTTPS je existence použitelného SSL certifikátu, který splňuje následující podmínky:
* je platný (časově)
* je vydaný na doménu, na které je provozováno webové rozhraní enTeam
* obsahuje rozšíření "Server Authentication" (Extended Key Usage = Server Authentication)
* je vydán uznávanou certifikační autoritou
* obsahuje privátní klíč
 
Pro jednoduchost budeme dále v textu předpokládat, že certifikát je na serveru importován do úložiště certifikátů <code>LocalMachine\My</code> a je dostupný pro uživatele, pod kterým běží webový server s webovým rozhraním enTeam.
 
===Služba OS Windows===
V případě, že webové rozhraní enTeam je provozováno jako služba operačního systému Windows, je pro jeho běh použit webový server Kestrel.<br>
Kompletní dokumentaci nastavení webového serveru Kestrel lze nalézt na https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-8.0
 
====Zjištění údajů certifikátu====
 
Pro konfiguraci je třeba znát buď:
* <code>Subject</code>, nebo
* <code>Thumbprint</code> – např. <code>AB12CD34EF56...</code>
 
Tyto údaje je možné zjistit pomocí aplikace PowerShell:<br>
{{Command|Get-ChildItem -Path Cert:\LocalMachine\My}}
 
====Konfigurace appsettings.json====
V adresáři projektu upravte soubor <code>appsettings.json</code>:
 
<b>Varianta se Subject:</b>
<br>
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "<nowiki>https://*:5001</nowiki>",
        "Certificate": {
          "Subject": "<... zjištěná hodnota Subject ...>",
          "Store": "My",
          "Location": "LocalMachine",
          "AllowInvalid": false
        }
      }
    }
  }
 
<b>Varianta s Thumbprint:</b>
<br>
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "<nowiki>https://*:5001</nowiki>",
        "Certificate": {
          "Thumbprint": "<... zjištěná hodnota Thumbprint ...>",
          "Store": "My",
          "Location": "LocalMachine",
          "AllowInvalid": false
        }
      }
    }
  }
 
{{Note|Poznámka: Klíč <code>AllowInvalid: false</code> zakazuje použití samo-podepsaných (self-signed) certifikátů. V neprodukčním prostředí lze jejich použití povolit nastavením hodnoty <code>true</code>.}}
 
===Aplikace v rámci IIS===
V případě, že webové rozhraní enTeam je provozováno jako aplikace v rámci webového serveru IIS, je třeba certifikát importovat do IIS a nastavit jeho použití aplikací.<br>
Kompletní dokumentaci nastavení webového serveru IIS lze nalézt na https://learn.microsoft.com/en-us/iis/configuration/
 
====Import certifikátu do IIS====
 
Certifikát ve formátu <code>.pfx</code> importujte do IIS následujícím postupem:
* Otevřte aplikaci IIS Manager (inetmgr)
* V levém panelu klikněte na název serveru (ne na konkrétní web)
* Otevřte položku '''Server Certificates'''
* Vpravo klikněte na '''Import...'''
* Vyberte <code>.pfx</code> soubor a zadejte heslo
* Potvrďte tlačítkem '''OK'''
 
Certifikát se objeví v seznamu serverových certifikátů.
 
====Přiřazení certifikátu k webové aplikaci====
 
* V IIS Manageru vyberte aplikaci {{FileName|enTeam.WebApi}}
* Vpravo klikněte na '''Bindings...'''
* Zvolte '''Add...'''
** '''Type''': <code>https</code>
** '''IP address''': <code>All Unassigned</code>
** '''Port''': port pro aplikaci webového rozhraní enTeam
** '''SSL certificate''': vyberte certifikát
* Potvrďte kliknutím na '''OK'''

Aktuální verze z 2. 9. 2025, 10:21

Nastavení HTTPS

Pro zajištění bezpečnosti komunikace klientů s webovým rozhraním aplikace enTeam doporučujeme nastavit šifrovanou komunikaci pomocí protokolu HTTPS.
Nastavení HTTPS se liší dle způsobu provozování webového rozhraní (služba OS Windows vs. aplikace provozovaná v IIS).

Předpoklady

Jediným předpokladem nastavení HTTPS je existence použitelného SSL certifikátu, který splňuje následující podmínky:

  • je platný (časově)
  • je vydaný na doménu, na které je provozováno webové rozhraní enTeam
  • obsahuje rozšíření "Server Authentication" (Extended Key Usage = Server Authentication)
  • je vydán uznávanou certifikační autoritou
  • obsahuje privátní klíč

Pro jednoduchost budeme dále v textu předpokládat, že certifikát je na serveru importován do úložiště certifikátů LocalMachine\My a je dostupný pro uživatele, pod kterým běží webový server s webovým rozhraním enTeam.

Služba OS Windows

V případě, že webové rozhraní enTeam je provozováno jako služba operačního systému Windows, je pro jeho běh použit webový server Kestrel.
Kompletní dokumentaci nastavení webového serveru Kestrel lze nalézt na https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-8.0

Zjištění údajů certifikátu

Pro konfiguraci je třeba znát buď:

  • Subject, nebo
  • Thumbprint – např. AB12CD34EF56...

Tyto údaje je možné zjistit pomocí aplikace PowerShell:
Get-ChildItem -Path Cert:\LocalMachine\My

Konfigurace appsettings.json

V adresáři projektu upravte soubor appsettings.json:

Varianta se Subject:

 "Kestrel": {
   "Endpoints": {
     "Https": {
       "Url": "https://*:5001",
       "Certificate": {
         "Subject": "<... zjištěná hodnota Subject ...>",
         "Store": "My",
         "Location": "LocalMachine",
         "AllowInvalid": false
       }
     }
   }
 }

Varianta s Thumbprint:

 "Kestrel": {
   "Endpoints": {
     "Https": {
       "Url": "https://*:5001",
       "Certificate": {
         "Thumbprint": "<... zjištěná hodnota Thumbprint ...>",
         "Store": "My",
         "Location": "LocalMachine",
         "AllowInvalid": false
       }
     }
   }
 }

Poznámka: Klíč AllowInvalid: false zakazuje použití samo-podepsaných (self-signed) certifikátů. V neprodukčním prostředí lze jejich použití povolit nastavením hodnoty true.

Aplikace v rámci IIS

V případě, že webové rozhraní enTeam je provozováno jako aplikace v rámci webového serveru IIS, je třeba certifikát importovat do IIS a nastavit jeho použití aplikací.
Kompletní dokumentaci nastavení webového serveru IIS lze nalézt na https://learn.microsoft.com/en-us/iis/configuration/

Import certifikátu do IIS

Certifikát ve formátu .pfx importujte do IIS následujícím postupem:

  • Otevřte aplikaci IIS Manager (inetmgr)
  • V levém panelu klikněte na název serveru (ne na konkrétní web)
  • Otevřte položku Server Certificates
  • Vpravo klikněte na Import...
  • Vyberte .pfx soubor a zadejte heslo
  • Potvrďte tlačítkem OK

Certifikát se objeví v seznamu serverových certifikátů.

Přiřazení certifikátu k webové aplikaci

  • V IIS Manageru vyberte aplikaci enTeam.WebApi
  • Vpravo klikněte na Bindings...
  • Zvolte Add...
    • Type: https
    • IP address: All Unassigned
    • Port: port pro aplikaci webového rozhraní enTeam
    • SSL certificate: vyberte certifikát
  • Potvrďte kliknutím na OK