8

В нашем офисе есть машина с Windows 10 Pro, у которой есть открытый порт в Интернет для входящих подключений к удаленному рабочему столу («хост»). Он хорошо защищен сложным паролем и ограниченным числом разрешенных попыток и только TLS 1.1 или выше, но он не предоставляет проверенный извне SSL-сертификат, а только самогенерируемый самоподписанный, который предоставляет службы удаленных рабочих столов, и это дает нам две проблемы:

  1. Мы не можем быть полностью уверены в том, что при удаленном подключении мы действительно подключаемся к этой машине, а не к некоторым угнанным соединениям.
  2. Наш сайт не проходит проверку на соответствие стандарту PCI-DSS 3.1 (требуется, потому что мы используем там машину для оплаты дебетовых / кредитных карт в точках продаж, которая подключается через Интернет). Проверка сообщает о неустранимых ошибках этого порта удаленного рабочего стола с выходом в Интернет: «Самоподписанный сертификат SSL» и «Сертификат SSL с неверным именем хоста».

Как получить компьютер с Windows 10 Pro (или Windows 7/8 / 8.1 Pro), выполняющий роль сервера / хоста, для предоставления надлежащего SSL-сертификата для проверки удаленного рабочего стола?

2 ответа2

12

Таким образом, вы можете настроить этот хост-компьютер на использование и представление своего (действующего, приобретенного) сертификата SSL, проверенного извне (инструкции, вероятно, также работают для Windows 8 и 8.1, могут работать или не работать для Windows 7) (часть этого основана на Microsoft KB 2001849):

Во-первых, вам необходимо приобрести подлинный проверенный сертификат SSL.

Если у вас есть этот сертификат в файле формата pkcs12 (например, расширение pfx), вы можете просмотреть отпечаток SHA1, используя Linux или Cygwin, таким образом (он понадобится вам ниже):

openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint

В качестве альтернативы, если у вас есть отдельные файлы сертификатов на вашем сервере Linux в /etc /ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle и /etc/ssl/private/mysite.key) вы можете создать файл pfx и получить отпечаток SHA1 таким образом:

  1. Создайте файл pfx для своего сертификата, если у вас его еще нет (здесь: mysite.pfx) - установите хороший пароль при запросе: sudo openssl pkcs12 -export -out mysite.pfx -inkey /etc /ssl /private /mysite .pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
  2. Переместите или скопируйте этот файл pfx, как требуется, чтобы он был доступен на вашем хост-компьютере Windows.
  3. Просмотрите SHA1-отпечаток ключа (вам понадобится это ниже): openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint

Импортируйте файл формата pkcs12 (например, pfx) в хранилище личных сертификатов хоста Windows:

  1. Пуск / Выполнить / ММС
  2. Файл / Добавить Удалить оснастку / Сертификаты / Добавить / Учетная запись компьютера / Локальный компьютер / ОК
  3. В левом окне щелкните правой кнопкой мыши Сертификаты (локальный компьютер)/ Личные, выберите Все задачи / Импорт…
  4. Найдите файл pfx и импортируйте его. Я полагаю, что по соображениям безопасности вы не можете сделать его экспортируемым.
  5. Расширяя ваши личные / сертификаты, вы должны увидеть 3 сертификата, один из которых - сертификат вашего сайта (например, mysite.com). Щелкните правой кнопкой мыши по сертификату этого сайта и щелкните правой кнопкой мыши, выберите «Все задачи / Управление личными ключами»…
  6. Добавьте пользователя «NETWORK SERVICE» только с правами на чтение (не полный доступ), затем нажмите «Применить».
  7. Закрыть mmc

Используйте regedit для добавления нового двоичного значения с именем SSLCertificateSHA1Hash в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Необходимое значение - это отпечаток SHA1 сертификата, полученного выше: щелкните правой кнопкой мыши новое значение, выберите «Изменить», а затем последовательно введите шестнадцатеричные коды (без двоеточий, пробелов или запятых, буквы не чувствительны к регистру) - есть Всего 20 шестнадцатеричных пар (40 символов).

Вам может потребоваться перезагрузить хост-компьютер или перезапустить службы удаленного рабочего стола (из Services.msc), прежде чем он заработает.

Теперь, после подключения удаленного рабочего стола к этому хосту с использованием правильного имени сайта (например, mysite.com), вы увидите заблокированный замок в левой части верхней панели подключения: щелчок по нему показывает, что идентификатор удаленного компьютер был проверен. Порт, открытый из Интернета через этот хост, теперь должен пройти тестирование имени хоста PCI-DSS 3.1.

4

Вот основные шаги, которые я использую:

Получите действительный сертификат для хоста (он не обязательно должен быть от внешнего ЦС, но все ваши машины должны ему доверять). Убедитесь, что у него правильное имя хоста, у меня были проблемы с подстановочными знаками.

Установите сертификат на хосте, например:

certutil.exe -p myPassword -importPFX c:\mycert.pfx noExport

найдите отпечаток для сертификата в пользовательском интерфейсе или в PowerShell:

$tp = (ls Cert:\LocalMachine\my | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint

Теперь скажите удаленному рабочему столу использовать этот сертификат:

& wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp" 

перезагрузка не требуется

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .