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