Přesměrování nešifrované komunikace na protokol HTTPS: Porovnání verzí
(→Konfigurace appsettings.json) |
(→Konfigurace appsettings.json) |
||
| Řádek 33: | Řádek 33: | ||
<b>Varianta se Subject:</b> | <b>Varianta se Subject:</b> | ||
<br> | <br> | ||
| − | |||
"Kestrel": { | "Kestrel": { | ||
"Endpoints": { | "Endpoints": { | ||
| Řádek 47: | Řádek 46: | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
<b>Varianta s Thumbprint:</b> | <b>Varianta s Thumbprint:</b> | ||
| − | < | + | <br> |
| − | |||
"Kestrel": { | "Kestrel": { | ||
"Endpoints": { | "Endpoints": { | ||
| Řádek 66: | Řádek 62: | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
'''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>. | '''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>. | ||
Verze z 29. 8. 2025, 10:25
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: <syntaxhighlight lang="powershell"> Get-ChildItem -Path Cert:\LocalMachine\My </syntaxhighlight>
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.
4. Přístupová práva
Pokud je certifikát uložen v LocalMachine\My, aplikace musí mít odpovídající oprávnění:
- Spouštěj jako správce
- Nebo běž jako Windows služba s přístupem k privátním klíčům
Pro ladění můžeš použít StoreLocation.CurrentUser, kde oprávnění nejsou potřeba.