Přesměrování nešifrované komunikace na protokol HTTPS: Porovnání verzí
(Založena nová stránka s textem „==Přesměrování nešifrované komunikace na protokol HTTPS==“) |
(→Zjištění údajů certifikátu) |
||
(Není zobrazeno 7 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
− | == | + | ==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": "https://*:5001", | ||
+ | "Certificate": { | ||
+ | "Subject": "<... zjištěná hodnota Subject ...>", | ||
+ | "Store": "My", | ||
+ | "Location": "LocalMachine", | ||
+ | "AllowInvalid": false | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | <b>Varianta s Thumbprint:</b> | ||
+ | <br> | ||
+ | "Kestrel": { | ||
+ | "Endpoints": { | ||
+ | "Https": { | ||
+ | "Url": "https://*:5001", | ||
+ | "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''' |
Verze z 29. 8. 2025, 10:43
Obsah
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
, neboThumbprint
– 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
- Type:
- Potvrďte kliknutím na OK