В нашем офисе есть машина с Windows 10 Pro, у которой есть открытый порт в Интернет для входящих подключений к удаленному рабочему столу («хост»). Он надежно защищен сложным паролем и ограниченным числом разрешенных попыток и только TLS 1.1 или выше, но он не предоставляет проверенный извне SSL-сертификат, а только самогенерируемый самозаверяющий сертификат, который предоставляет службы удаленных рабочих столов, и это дает нам две проблемы:
- Мы не можем быть полностью уверены в том, что при удаленном подключении мы действительно подключаемся к этой машине, а не к некоторым угнанным соединениям.
- Наш сайт не проходит проверку на соответствие стандарту PCI-DSS 3.1 (требуется, потому что мы используем там устройство для оплаты дебетовых / кредитных карт в точках продаж, которое подключается через Интернет). Проверка сообщает о неустранимых ошибках этого удаленного рабочего стола с выходом в Интернет: «Самоподписанный сертификат SSL» и «Сертификат SSL с неправильным именем хоста».
Как получить компьютер с Windows 10 Pro (или Windows 7/8 / 8.1 Pro), выполняющий роль сервера / хоста, для предоставления надлежащего SSL-сертификата для проверки удаленного рабочего стола?
Ответы:
Таким образом, вы можете настроить этот хост-компьютер на использование и представление своего (действующего, приобретенного) сертификата SSL с внешним подтверждением (инструкции, вероятно, также работают для Windows 8 и 8.1, могут работать или не работать для Windows 7) (часть этого основана на Microsoft KB 2001849 ):
Во-первых, вам необходимо приобрести подлинный проверенный сертификат SSL.
Если у вас есть этот сертификат в файле формата pkcs12 (например, расширение pfx), вы можете просмотреть отпечаток SHA1, используя Linux или Cygwin, таким образом (он понадобится вам ниже):
В качестве альтернативы, если у вас есть отдельные файлы сертификатов на вашем сервере Linux в / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle и /etc/ssl/private/mysite.key ) вы можете создать файл pfx и получить отпечаток SHA1 таким образом:
Создайте файл pfx для вашего сертификата, если у вас его еще нет (здесь: mysite.pfx) - установите хороший пароль при запросе:
Переместите или скопируйте этот файл pfx, как требуется, чтобы он был доступен на хост-компьютере Windows.
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Импортируйте файл формата pkcs12 (например, pfx) в хранилище личных сертификатов хоста Windows:
Используйте regedit для добавления нового двоичного значения с именем SSLCertificateSHA1Hash в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
. Необходимое значение - это отпечаток SHA1 сертификата, полученного выше: щелкните правой кнопкой мыши новое значение, выберите «Изменить», а затем последовательно введите шестнадцатеричные коды (без двоеточий, пробелов или запятых, буквы не чувствительны к регистру) - есть Всего 20 шестнадцатеричных пар (40 символов).Вам может потребоваться перезагрузить хост-компьютер или перезапустить службы удаленного рабочего стола (из Services.msc), прежде чем он заработает.
Теперь, после подключения удаленного рабочего стола к этому хосту с использованием правильного имени сайта (например, mysite.com), вы увидите заблокированный замок с левой стороны верхней панели подключения: щелчок по нему показывает, что идентификатор удаленного компьютер был проверен. Порт, открытый из Интернета через этот хост, теперь должен пройти тестирование имени хоста PCI-DSS 3.1.
источник
Вот основные шаги, которые я использую:
Получите действительный сертификат для хоста (он не обязательно должен быть от внешнего ЦС, но все ваши машины должны ему доверять). Убедитесь, что у него правильное имя хоста, у меня были проблемы с подстановочными сертификатами.
Установите сертификат на хосте, например:
найдите отпечаток для сертификата в пользовательском интерфейсе или в PowerShell:
Теперь скажите Remote Desktop использовать этот сертификат:
перезагрузка не требуется
источник
Мой сертификат поставляется с 2 необходимыми файлами,
domain.crt
иdomain.ca-bundle
& затем я получилdomain.key
от генерации запроса.Вот как я настроил его, используя виртуальную машину Linux для объединения сертификатов и создания CMD отпечатков пальцев и Windows для настройки хоста. Это позволяет полный сценарий установки.
Самые большие различия между моим ответом и ответом @gogoud:
wmic /namespace:
через приглашение CMD.NETWORK SERVICE
разрешений.Создайте каталог для работы и переместите в него 3 файла:
Создать ключ формата pfx:
Экспортируйте SSLCertificateSHA1Hash / FingerPrint в файл TXT:
Импорт сертификата в Windows (открытая повышенная CMD-подсказка):
Это может быть дополнительно сценарий с помощью ключа "-p MyPassword"
Теперь добавьте SSLCertificateSHA1Hash к RDP-Tcp через CMD (повышенное приглашение CMD):
Вам нужно будет добавить пользователя «Сетевая служба» с разрешениями «Только чтение»:
Перезагрузка хоста:
источник