Я последовал за
чтобы защитить RDP с помощью надлежащего сертификата вместо самозаверяющего сертификата Windows. Все это хорошо работает. Пока я не убегу
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="MY_HASH"
Эта команда приводит только к «Недействительному параметру».
Эта же команда хорошо работает с хешем исходного (самозаверяющего Windows) сертификата. Так что я думаю, что что-то не так с моим сертификатом. Кажется, он правильно установлен в хранилище сертификатов (с закрытым ключом и в подразделе «Remotedesktop»).
Глядя на сведения о сертификате в оснастке MMC для сертификации, мой импортированный сертификат имеет желтый восклицательный знак рядом с:
Использование ключа = цифровая подпись, шифрование ключа (a0)
и дополнительное поле
Базовые ограничения = Тип запрашивающего: конечный блок
В то время как самозаверяющий сертификат, который Windows создает для подключения RDP, имеет:
Использование ключа = шифрование ключа, шифрование данных (30)
Есть ли способ изменить это или просто невозможно использовать этот сертификат для RDP?
Дополнительная информация:
Боюсь, я должен ответить на свой вопрос, и ответ, кажется, будет Нет. Используя команду openssl x509 -in cert.crt -purpose -noout -text
оказывается, что исходный сертификат, предоставленный Comodo, уже не имеет необходимых флагов в Key Usage
поле. У него нет Data Encipherment
характерная черта.
Сертификат Comodo выглядит так:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
Самозаверяющий сертификат Windows имеет следующие флаги:
X509v3 extensions:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Key Usage:
Key Encipherment, Data Encipherment
Я не знаю, нужен ли вам ответ на эту проблему, но если он кому-то еще нужен, вот он, у вас есть.
Вам действительно не нужны указанные вами атрибуты.
Следуя инструкциям из этого сообщения, вы успешно установите любой CRT (подстановочный или обычный) на компьютер / контроллер домена.
Я не тестировал без AD CS, но думаю, что он работает.
Единственное, что вам нужно сделать, это преобразовать CRT / p7b в cer, а затем в pfx (pkcs12) с помощью ключа и пакета. Затем вручную импортируйте его в свою операционную систему.
https://blogs.technet.microsoft.com/enterprisemobility/2010/04/09/configuring-remote-desktop-certificates/ - это сообщение.
https://www.sslshopper.com/ssl-converter.html - здесь вы можете узнать, как конвертировать сертификаты.
Кстати, вы можете пропустить часть сценария WMI и использовать следующую команду из PowerShell с правами администратора:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="YOUR-THUMBPRINT-GOES-HERE"
У меня это сработало на Windows Server 2016 / Windows 10.
Надеюсь, поможет! :)