Instalacja certyfikatu TLS
Instalacja certyfikatu TLS jest kluczowym elementem w zapewnieniu bezpieczeństwa cyfrowego. Certyfikat ten stanowi podstawę dla szyfrowanych połączeń, chroniąc wymianę danych między serwerem a aplikacjami. Proces instalacji rozpoczyna się od wygenerowania żądania podpisania certyfikatu (CSR), a następnie zarejestrowania go u wydawcy certyfikatów. Po otrzymaniu certyfikatu TLS należy go zainstalować na serwerze. Ważne jest, aby podczas instalacji zwrócić uwagę na poprawność wszystkich kroków, gdyż tylko wtedy można zagwarantować pełne bezpieczeństwo transmisji danych. Regularne aktualizacje i monitorowanie stanu certyfikatu są również niezbędne, aby utrzymać ochronę na najwyższym poziomie.
Instalowanie certyfikatu dla aplikacji Wapro ERP odbywa się w dwóch etapach:
Jak wygenerować i zainstalować certyfikat na serwerze SQL?
Tworzenie certyfikatu możliwe jest przy pomocy programu Administrator Wapro ERP.
Poniższa procedura opisuje instalację certyfikatu na przykładzie programu Wapro Fakir. W przypadku posiadania kilku programów na serwerze, instalacji certyfikatu nie należy jej powtarzać dla każdego z nich oddzielnie - wystarczy zainstalować go w jednym dowolnie wybranym programie.
Uruchom moduł Administrator Wapro ERP w roli administratora. W tym celu z menu Start wyszukaj program Administrator Wapro ERP, kliknij prawym przyciskiem myszy pozycję Administrator.exe i wybierz opcję Uruchom jako Administrator.
Po zalogowaniu się do Administratora Wapro ERP przejdź na zakładkę Zaawansowane i wybierz opcję Administracja serwerem.
Aby utworzyć i zainstalować certyfikat TLS na serwerze, kliknij przycisk Włącz szyfrowanie połączeń
.
System wyświetli komunikat informujący o konsekwencjach wykonywanej operacji oraz konieczności jej potwierdzenia. Aby wycofać się z operacji, kliknij opcję Nie. Po kliknięciu opcji Tak wyświetli się komunikat o prawidłowym przebiegu konfiguracji.
Jeśli użytkownik posiada już zainstalowany certyfikat i ponownie wybierze opcję Włącz szyfrowanie połączeń
, wyświetli się informacja o tym, że konfiguracja została już przeprowadzona. Nie ma wówczas konieczności wykonywania jakichkolwiek operacji.
Utworzony certyfikat można zweryfikować, uruchamiając SQL Serwer Configuration Manager. Po wybraniu w drzewie pozycji SQL Server Network Configuration wyświetli się lista protokołów. Na protokole odpowiadającym instancji zainstalowanego serwera SQL kliknij prawym przyciskiem myszy, a następnie wybierz pozycję Właściwości.
Na zakładce Certificate widoczne są takie informacje jak data wygenerowania certyfikatu, jego nazwa oraz informacja przez kogo został wystawiony.
Po przejściu na zakładkę View możliwy jest dostęp do szczegółów certyfikatu. Zwróć uwagę na pole Odcisk palca, gdyż jest to wartość, po której można zweryfikować poprawność certyfikatu na innych stanowiskach.
Jak zainstalować certyfikat na stanowisku?
Przykład 1
Serwer jest jednocześnie stanowiskiem do pracy użytkownika. Po wygenerowaniu i zainstalowaniu certyfikatu na serwerze SQL konieczne jest jego zaimportowanie na stanowisko. W tym celu uruchom wybraną aplikację, a następnie w oknie logowania kliknij pozycję Dodatkowe opcje. Pod nazwą bazy danych zostaną wyświetlone dodatkowe pola.
Zaznacz opcję Szyfruj połączenie i kliknij przycisk Zaloguj
. Pojawi się komunikat informujący użytkownika o przeprowadzanej operacji, który należy potwierdzić.
W kolejnym komunikacie wygenerowanym przez system Windows, widoczna będzie informacja o odcisku palca certyfikatu, który można porównać z odciskiem certyfikatu utworzonym na serwerze.
Po zatwierdzeniu obu komunikatów wygenerowany na serwerze SQL certyfikat zostanie zaimportowany na stanowisko, co zostanie potwierdzone w kolejnym komunikatem.
Jak sprawdzić czy certyfikat został prawidłowo zaimportowany??
Aby sprawdzić, czy certyfikat został poprawnie zainstalowany, przejdź do Panelu sterowania Windows i wybierz opcję Zarządzaj certyfikatami komputerów. Po lewej stronie rozwiń gałąź Osobisty i kliknij folder Certyfikaty. Z prawej strony okna wyświetli się certyfikat danego stanowiska.
Aby sprawdzić, czy jest to ten sam certyfikat, który został wygenerowany na serwerze, kliknij prawym przyciskiem myszy na wyświetlony certyfikat i przejdź na zakładkę Otwórz. Następnie na zakładce Szczegóły podświetl pozycję Odcisk palca.
Porównaj wartość pozycji Odcisk palca z wartością w SQL Server Configuration Manager.
Nie zalecamy korzystania z opcji Ufaj certyfikatom serwera. Pozycja ta została dodana jako możliwość awaryjna na okoliczność problemów z konfiguracją certyfikatów. W przypadku jej włączenia, aplikacja w trakcie łączenia zaakceptuje dowolny certyfikat serwera, którym się przedstawi. W przypadku, kiedy osoba niepożądana posiada dostęp do serwera, może zainstalować własny certyfikat, który następnie zostanie użyty do szyfrowania połączenia. W konsekwencji atakujący będzie znał prywatny klucz certyfikatu, co umożliwi mu odszyfrowanie danych w trakcie transmisji, a tym samym podgląd tych danych.
Przykład 2
Stanowisko nie ma zainstalowanego serwera SQL i łączy się z serwerem np. sieciowo. W tym przypadku import certyfikatu przebiega analogicznie jak w poprzednim przykładzie. Różnica polega na zmianie miejsca weryfikacji certyfikatu. Aby go zweryfikować, przejdź do Panelu sterowania Windows i wybierz opcję Zarządzaj certyfikatami użytkowników, a następnie z lewej strony kliknij pozycję Zaufane główne urzędy certyfikacji i otwórz katalog Certyfikaty. Przejdź na zakładkę Szczegóły i wybierz opcję Odcisk palca.
Jak działa wymuszanie połączeń tylko szyfrowanych?
Domyślnie pakiet Wapro ERP nie wymusza stosowania szyfrowania danych. Jest to opcja, którą świadomie użytkownik lub administrator danej instalacji powinien skonfigurować na wszystkich stanowiskach. Proces instalacji został przygotowany jako automatyczny, aby nie wymagał ręcznych operacji typu eksport i import certyfikatów pomiędzy stanowiskami. Dodatkowo w przypadku włączenia szyfrowania połączeń i utworzenia certyfikatu automatycznie, opcja Wymuszaj szyfrowanie nie jest egzekwowana po stronie definicji serwera SQL.
Opcja ta powoduje, że serwer wymusza na każdej aplikacji klienckiej, która się do niego łączy umiejętność obsługi szyfrowania. To rozwiązanie ma swoje zalety, ponieważ wymusza znacząco bezpieczeństwo dla wszystkich aplikacji. Niestety ma też swoje wady – jeśli programista jakiejś aplikacji zewnętrznej (np. moduł dodatkowy, integrator lub dowolna inna aplikacja, która łączy się do tego samego serwera SQL) nie obsłuży w trakcie połączenia szyfrowania, to aplikacja nie połączy się z serwerem.
Jeśli administrator świadomie chce wymusić szyfrowanie połączeń, może to włączyć poprzez konsolę SQL Server Configuration Manager. W tym celu powinien w konsoli, w sekcji SQL Server Network wybrać pozycję Configuration, a następnie Protocols for nazwa instancji. Po kliknięciu prawym przyciskiem myszy powinien wybrać pozycję Properties. W nowym oknie właściwości dla danej instancji, na zakładce Flags należy zmienić właściwość Force Ecryption na Yes. Ostatni krok to zapisanie zmiany i wymuszenie restartu usługi.
Wszystkie opisane zmiany są kompatybilne od SQL Server 2017 do SQL Server 2022.
Na co dodatkowo zwrócić uwagę?
Certyfikaty tworzone są per nazwa komputera. Przykładowo, jeśli komputer w sieci nazywa się Server1, to tak zostanie utworzony certyfikat. Zgodnie z działaniem zasad bezpieczeństwa szyfrowania danych oznacza to, że program, który łączy się do serwera i oczekuje szyfrowania, powinien tak podać nazwę komputera w ciągu połączenia do serwera. Niedopuszczalne jest zamienianie jej na inne formy („,”, localhost, adres ip itp.).
Do obsługi połączeń szyfrowanych wymagana jest komunikacja za pośrednictwem protokołu TCP/IP. Jeśli występuje problem z połączeniem, warto sprawdzić za pośrednictwem Konfiguratora SQL lub SQL Server Configuration Manager czy serwer jest udostępniony do pracy sieciowej oraz czy protokół TCP/IP jest włączony.
Do prawidłowego wykrywania instancji z komputerów sieciowych wymagane jest uruchomienie usługi SQL Browser na serwerze. Usługa ta odpowiedzialna jest za rozgłaszanie w lokalnej sieci LAN instancji nazwanych. Jeśli usługa jest wyłączona, komputery sieciowe mogą nie widzieć instancji po sieci, a tym samym będą miały problem, żeby się do niej podłączyć zdalnie.