Konfiguracja SSL
Konfiguracja SSL’a jest indywidualnym procesem.
Aby dodać obsługę protokołu HTTPS, należy posiadać certyfikat SSL wydany przez zaufany urząd certyfikacji w formacie .PFX
W przypadku braku takiego certyfikatu, aby móc korzystać z HTTPS, można wygenerować tymczasowy certyfikat developerski. Kroki do jego utworzenia opisano w punkcie 2.
Spis kroków
Instalacja certyfikatu SSL
Aby zainstalować certyfikat SSL i połączyć go z aplikacją LOG Plus, należy przenieść plik .PFX do katalogu cert w głównym katalogu aplikacji. Następnie nanieść odpowiednie zmiany w głównym pliku konfiguracyjnym appsettings.json, w lokalizacji: Kestrel.Endpoints.Https.Certificate (główna lokalizacja serwera).
Należy podmienić istniejący wpis “Certificate” na taki, jak w poniższym przykładzie wpisu konfiguracyjnego.
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:80"
},
"Https": {
"Url": "https://*:443",
"Certificate": {
"Path": "<lokalizacja>",
"Password": "<hasło>"
}
}
}
}
Dodatkowo należy uzupełnić pola Path oraz Password odpowiednimi wartościami:
Path – ścieżka do pliku .PFX - np. cert/certyfikat.pfx lub /opt/LOGSystems/LOGPlus/cert/certyfikat.pfx
Password – opcjonalnie – hasło służące do eksportu elementów z pliku PFX. W przypadku jego braku, pozostawiamy tę wartość pustą ( “” ) lub całkowicie usuwamy wpis “Password” z pliku konfiguracyjnego.
Naszym zaleceniem jest przechowywanie certyfikatów w katalogu cert - nie jest on kasowany podczas aktualizacji serwera. W przeciwnym przypadku, jeżeli np. umieścisz certyfikat w katalogu ssl, to przy pierwszej aktualizacji serwera zostanie on usunięty i usługa nie uruchomi się.
Tymczasowy certyfikat developerski
W przypadku gdy nie posiadamy zaufanego certyfikatu SSL, ale chcemy korzystać z protokołu HTTPS – można wygenerować certyfikat deweloperski. Wadą tego rozwiązania jest każdorazowo pojawiający się komunikat, informujący o tym, że połączenie nie jest prywatne. Samo bezpieczeństwo takiego certyfikatu jest porównywalne jak w przypadku zaufanego certyfikatu SSL.
Aby tego dokonać należy zainstalować paczkę: dotnet-sdk-3.1:
Windows: https://dotnet.microsoft.com/download
Linux: Komenda: apt install dotnet-sdk-3.1
Oraz będąc w dowolnym kontekście w oknie konsolowym, wywołać komendę:
dotnet dev-certs https
Dodatkowo należy zadbać o to, aby w pliku konfiguracyjnym appsettings.json, pole “Kestrel” wyglądało następująco: (ważny jest sam wpis “Https” – drugi wpis “Http” dotyczy połączeń bez certyfikatu).
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:80"
},
"Https": {
"Url": "https://*:443",
"Certificate": {
"HTTPS": {
"Source": "Store",
"StoreLocation": "CurrentUser",
"StoreName": "My",
"Subject": "CN=localhost",
"AllowInvalid": true
}
}
}
}
},
Brak certyfikatu - wyłączenie obsługi protokołu SSL
W przypadku gdy nie posiadamy certyfikatu SSL (sytuacja niezalecana), aby aplikacja zdołała się uruchomić, należy z pliku konfiguracyjnego appsettings.json, usunąć cały wpis: Kestrel.Endpoints.Https.
Wymuszenie połączenia HTTPS
Aby wymusić połączenie HTTPS należy:
W plikach: appsettings.json i appsettings.default.json usunąć poniższe 3 linijki:
Następnie zrestartować usługę LOG Plus (service logplus restart).
logplus.io