W naszym biurze mamy maszynę z systemem Windows 10 Pro, która ma otwarty port do Internetu dla połączeń przychodzących na pulpicie zdalnym („host”). Jest dobrze chroniony złożonym hasłem i ograniczoną liczbą dozwolonych prób i tylko TLS 1.1 lub nowszy, ale nie przedstawia zewnętrznie zweryfikowanego certyfikatu SSL, tylko samodzielnie wygenerowany samopodpisany certyfikat usług pulpitu zdalnego, a to daje nam dwa problemy:
- Nie możemy być w pełni pewni, kiedy łączymy się zdalnie, tak naprawdę łączymy się z tym komputerem, a nie z jakimś porwanym połączeniem.
- Nasza strona nie przejdzie kontroli zgodności z PCI-DSS 3.1 (wymagana, ponieważ używamy tam maszyny do kart debetowych / kredytowych w punkcie sprzedaży, która łączy się przez Internet). Kontrola zgłasza krytyczne błędy na tym internetowym porcie zdalnego pulpitu: „Certyfikat SSL z podpisem własnym” i „Certyfikat SSL z nieprawidłową nazwą hosta”.
Jak uzyskać maszynę z systemem Windows 10 Pro (lub Windows 7/8 / 8.1 Pro) działającą jako serwer / host w celu przedstawienia odpowiedniego certyfikatu SSL do weryfikacji pulpitu zdalnego?
Odpowiedzi:
Możesz ustawić tę maszynę hosta na używanie i prezentowanie (istniejącego, zakupionego) zewnętrznego certyfikatu SSL w ten sposób (instrukcje prawdopodobnie działają również w systemie Windows 8 i 8.1, mogą, ale nie muszą działać, w systemie Windows 7) (ich część oparta na systemie Microsoft KB 2001849 ):
Najpierw musisz kupić autentyczny zweryfikowany certyfikat ssl.
Jeśli posiadasz ten certyfikat w pliku w formacie pkcs12 (np. Rozszerzenie pfx), możesz wyświetlić odcisk palca SHA1 za pomocą Linuxa lub Cygwina (potrzebujesz go poniżej):
Alternatywnie, jeśli masz indywidualne pliki certyfikatów na serwerze Linux w / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle i /etc/ssl/private/mysite.key ) możesz utworzyć plik pfx i uzyskać odcisk palca SHA1 w ten sposób:
Utwórz plik pfx dla swojego certyfikatu, jeśli go jeszcze nie masz (tutaj: mysite.pfx) - ustaw dobre hasło na żądanie:
Przenieś lub skopiuj ten plik pfx zgodnie z wymaganiami, aby był dostępny dla komputera z systemem Windows.
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Zaimportuj plik w formacie pkcs12 (np. Pfx) do osobistego magazynu certyfikatów komputera hosta Windows:
Użyj regedit, aby dodać nową wartość binarną o nazwie SSLCertificateSHA1Hash at
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
. Potrzebna jest wartość odcisku palca SHA1 certyfikatu uzyskanego powyżej: kliknij prawym przyciskiem myszy nową wartość, wybierz polecenie Modyfikuj, a następnie wpisz kolejno kody szesnastkowe (bez dwukropków, spacji i przecinków, w literach nie jest rozróżniana wielkość liter) Łącznie 20 par heksadecymalnych (40 znaków).Konieczne może być ponowne uruchomienie komputera hosta lub ponowne uruchomienie usług pulpitu zdalnego (z Services.msc), zanim zacznie działać.
Teraz po nawiązaniu połączenia pulpitu zdalnego z tym hostem przy użyciu poprawnej nazwy witryny (np. Mysite.com) powinieneś zobaczyć zamkniętą kłódkę po lewej stronie górnego paska połączenia: kliknięcie tego pokazuje, że tożsamość pilota komputer został zweryfikowany. Port, który jest otwarty z Internetu do tego hosta, powinien teraz przejść testowanie nazwy hosta PCI-DSS 3.1.
źródło
Oto podstawowe kroki, których używam:
Uzyskaj ważny certyfikat dla hosta (nie musi on pochodzić z zewnętrznego urzędu certyfikacji, ale wszystkie Twoje maszyny muszą mu ufać). Upewnij się, że ma prawidłową nazwę hosta, miałem problemy z certyfikatami symboli zastępczych.
Zainstaluj certyfikat na hoście, na przykład:
znajdź odcisk palca dla certyfikatu w interfejsie użytkownika lub w programie PowerShell:
teraz powiedz Pulpitowi zdalnemu, aby używał tego certyfikatu:
ponowne uruchomienie nie jest wymagane
źródło
Mój cert wyposażony jest w 2 plikach potrzebnych
domain.crt
&domain.ca-bundle
& następnie Mamdomain.key
od generowania żądania.Oto jak skonfigurowałem to za pomocą maszyny wirtualnej z systemem Linux, aby połączyć certyfikaty i wygenerować odcisk palca oraz CMD systemu Windows w celu skonfigurowania hosta. Umożliwia to pełne skryptowanie instalacji.
Największe różnice między moją a odpowiedzią @gogoud to:
wmic /namespace:
za pomocą zachęty CMD.NETWORK SERVICE
uprawnień.Utwórz katalog do pracy i przenieś do niego 3 pliki:
Utwórz klucz w formacie pfx:
Wyeksportuj certyfikat SSLCSHA1Hash / FingerPrint do pliku TXT:
Importuj certyfikat do systemu Windows (monit o podniesione podniesione CMD):
Można to dalej wykonać za pomocą przełącznika „-p MojeHasło”
Teraz dodaj SSLCertificateSHA1Hash do RDP-Tcp za pomocą CMD (podwyższone zapytanie CMD):
Musisz teraz dodać uprawnienia użytkownika „Usługa sieciowa” z „Tylko do odczytu”:
Uruchom ponownie hosta:
źródło