У меня есть только что установленный сервер удаленного рабочего стола Windows Server 2016, и я пытаюсь создать для него сертификат. В частности, я считаю, что мне нужно настроить сертификат для службы роли «Посредник подключений к удаленному рабочему столу - публикация».
Вся документация Microsoft и большая часть стороннего контента, который я могу найти, похоже, предполагают, что сертификат будет либо самоподписанным, либо сгенерированным внутри компании с использованием службы Microsoft Certificate Authority. Мне нужен сертификат, подписанный подходящим сторонним общедоступным центром сертификации, чтобы он по умолчанию пользовался доверием на всех компьютерах с Windows.
Мастер Deployment Properties не имеет возможности генерировать запросы сертификатов, поэтому вам нужно использовать оснастку Certificates MMC (или IIS, но у меня она не установлена). К сожалению, оснастка «Сертификаты» не очень удобна для пользователя, и неясно, как действовать дальше.
Как можно использовать оснастку «Сертификаты» для создания запроса на сертификат, подходящего для службы роли «Посредник подключений к удаленному рабочему столу - публикация»?
Это то, что у меня сработало. Однако я был бы признателен за любые комментарии или ответы, которые могут расширить то, что на самом деле означают некоторые из этих вариантов!
Откройте консоль MMC на сервере удаленного рабочего стола, для которого вы хотите создать сертификат, и добавьте оснастку «Сертификаты», выбрав параметры «Учетная запись компьютера» и «Локальный компьютер». Перейдите в «Личные» / «Сертификаты», щелкните правой кнопкой мыши и выберите «Все задачи» -> «Дополнительные операции» -> «Создать настраиваемый запрос».
Нажмите кнопку "Далее. Выберите «Продолжить без политики регистрации» и снова нажмите «Далее».
В качестве шаблона я выбрал «(Без шаблона) CNG-ключ». Я нашел несколько сообщений, в которых говорится, что вместо этого вам нужно выбрать вариант Legacy, но я не вижу причин, по которым это может быть необходимо, и действительно, вариант CNG работал должным образом.
В качестве формата запроса я выбрал PKCS # 10.
В диалоговом окне «Информация о сертификате» нажмите «Подробности», а затем «Свойства».
На вкладке Общие добавьте понятное имя и описание.
На вкладке «Тема» добавьте полное DNS-имя сервера (или фермы серверов) в качестве «Обычного имени». Обратите внимание, что запрос сертификата с неквалифицированным именем (будь то в качестве субъекта или в качестве альтернативного имени), скорее всего, будет отклонен центром подписи сертификатов.
Я также добавил организацию, местонахождение, штат и страну. Если у сервера более одного DNS-имени, вы также можете добавить альтернативные имена на этом этапе.
На вкладке Extensions в разделе Extended Key Usage добавьте Server Authentication. Других изменений в этой вкладке я не делал. (В некоторых сообщениях говорится, что вы также должны включить подпись кода, предположительно, чтобы вы могли подписывать файлы RDP; это не кажется необходимым, так как я мог использовать rdpsign
чтобы подписать мой файл RDP, и сертификат был принят клиентом Microsoft.)
На вкладке «Закрытый ключ» в разделе «Параметры ключа» я изменил размер ключа на 2048 и установил флажок «Сделать закрытый ключ экспортируемым». Это необходимо, потому что диалоговое окно «Свойства развертывания» позволит вам импортировать сертификат только в виде файла, а затем сертификат и закрытый ключ будут перенесены на сервер (ы) хоста сеанса. Других изменений на этой вкладке я не делал.
Закройте диалоговое окно «Свойства» и нажмите «Далее». Сохраните запрос как файл в формате Base64. Щелкните Готово. Отправьте запрос в центр сертификации, и как только новый сертификат будет сгенерирован, загрузите его в файл .crt.
В консоли MMC щелкните правой кнопкой мыши на Personal / Certificates и выберите All Tasks -> Import. Выберите файл ответов и нажмите Далее. Убедитесь, что выбран Личный магазин, и нажмите Далее. Щелкните Готово. Нажмите OK, когда получите сообщение о том, что импорт был успешным.
Дважды щелкните новый сертификат, чтобы открыть его. Убедитесь, что сертификат указан как действительный; в противном случае вам может потребоваться импортировать промежуточный сертификат CA, предоставленный вашим центром сертификации. Также убедитесь, что в сертификате отображается сообщение «У вас есть закрытый ключ, соответствующий этому сертификату» на вкладке «Общие».
Щелкните новый сертификат правой кнопкой мыши и выберите «Экспорт». Нажмите кнопку "Далее. Выберите вариант экспорта закрытого ключа и нажмите Далее.
В диалоговом окне «Формат файла экспорта» PKCS # 12 был единственным доступным выбором; Я использовал настройки по умолчанию, т. Е. Оставил флажок «включить все сертификаты в путь сертификации, если возможно», а все остальные параметры не отмечены. Нажмите кнопку "Далее. (Редактировать: в Server 2019 опция «Включить конфиденциальность сертификата» также включена по умолчанию, это описано здесь и, насколько я понимаю, вы можете оставить его включенным.)
Выберите вариант защиты закрытого ключа с помощью вашей учетной записи и нажмите Далее. Введите имя файла и нажмите Далее. Нажмите ОК, когда получите сообщение о том, что экспорт был успешным. (Обратите внимание, что файл по умолчанию будет сохранен в том же месте, откуда вы импортировали файл сертификата.)
Вернувшись к диспетчеру сервера и мастеру свойств развертывания, выберите параметр «Посредник подключений к удаленному рабочему столу - Включить единый вход» и нажмите «Выбрать существующий сертификат». Выберите экспортированный файл .pfx и выберите обязательный параметр «Разрешить добавление сертификата в хранилище сертификатов доверенных корневых центров сертификации на конечных компьютерах». Щелкните ОК. Щелкните Применить.
NB: Чтобы сертификат использовался при подключении клиентов, необходимо установить его для параметра «Включить единый вход», а не, как я изначально предполагал, для параметра «Публикация». (На самом деле вам не нужно использовать SSO, вы можете настроить, будет ли выполняться SSO через групповую политику на стороне клиента.)
Как описано Вот, вы можете легко проверить, какой сертификат обслуживается клиентами, подключившись через IP-адрес сервера, а не через имя.
Дополнительные ссылки:
Настройка сертификатов и единого входа, особенно раздел под названием «Распространенные ошибки при создании сертификатов».