Вопрос или проблема
Я создал сертификат аутентификации сервера SSL с CN, совпадающим с именем хоста сервера. Однако, использование winrm qc -transport:https
завершается неудачей с следующей ошибкой:
Невозможно создать WinRM слушатель на HTTPS, так как на этой машине нет подходящего сертификата. Для использования в SSL, сертификат должен иметь CN, совпадающий с именем хоста, быть подходящим для аутентификации сервера и не быть просроченным, отозванным или самоподписанным.
Если я указываю имя хоста и отпечаток сертификата при использовании winrm qc, создается слушатель https, как и ожидалось.
Сертификат находится в Сертификаты (Локальный компьютер) > Личные > Сертификаты, и в поле “Выдан для” сертификата указано полное доменное имя сервера. Сертификат подписан нашим внутренним ЦС (Серверы сертификатов Windows Server 2008 AC), и корневой сертификат установлен на сервере. Свойства сертификата показывают, что ему доверяют.
Есть ли какие-либо идеи, почему winrm qc -transport:https
некорректно использует сертификат для настройки слушателя https?
Попробуйте немного менее быстрый способ:
.
Ответ или решение
Настройка HTTPS Прослушивателя для WinRM на Windows Server 2012 может быть довольно сложной задачей, особенно когда сталкиваешься с неожиданными проблемами при использовании команды winrm qc -transport:https
. Ваша ситуация, описанная выше, содержит несколько ключевых моментов, которые необходимо учитывать для успешной реализации данной задачи.
Теория
Для настройки HTTPS-листенера WinRM требуется SSL-сертификат, соответствующий определенным критериям:
- CN должен соответствовать имени хоста: Общепринято, что полное доменное имя (FQDN) сервера должно совпадать с общим именем (Common Name, CN) в сертификате.
- Подходит для серверной аутентификации: Сертификат должен поддерживать расширенный ключ использования для серверной аутентификации.
- Должен быть действующим: Сертификат не должен быть истекшим, отозванным или самоподписанным.
Ошибка, которую вы получаете, указывает на то, что система не может обнаружить такой сертификат.
Пример
Ваш сертификат размещается в разделе "Личное" хранилища сертификатов локального компьютера и подписан вашим внутренним центр сертификации (CA). Однако использование winrm qc -transport:https
приводит к ошибке. Когда же вы указываете имя хоста и отпечаток сертификата вручную, прослушиватель создается успешно.
Это подводит нас к нескольким потенциальным причинам, почему команда winrm qc -transport:https
может срабатывать неправильно:
-
Несоответствие между CN и именем хоста: Иногда общее имя в сертификате может казаться соответствующим, но если есть даже незначительные несоответствия, они могут вызвать ошибку. Убедитесь, что общее имя точно совпадает с FQDN сервера.
-
Проблемы с доступом к хранилищу сертификатов: Возможны проблемы с доступностью хранилища сертификатов или недостаточными привилегиями для чтения сертификата.
-
Ошибки в конфигурации GPO или сетевые политики безопасности: Политики безопасности, установленные на сервере или через GPO, могут ограничивать использование сертификатов.
-
Недостаточная информация о сертификате: Даже если ваш сертификат считается доверенным, простое наличие полной цепочки проверки не означает, что все флаги и расширения сертификатов анализированы должным образом.
Применение
Исходя из предоставленной информации, вот несколько предложений, которыми вы можете воспользоваться:
-
Проверка соответствия CN и FQDN: Повторно проверьте, что CN в сертификате абсолютно совпадает с полным именем хоста вашего сервера. Позвяните внимание на возможные опечатки и разные случаи.
-
Проверить сертификат с помощью PowerShell: Используйте PowerShell, чтобы проверить сертификат, и убедитесь, что сертификат виден системе:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Your-FQDN*" }
-
Убедитесь, что сертификат имеет назначение для серверной аутентификации:
Сертификат должен иметь «Server Authentication» в разделе «Extended Key Usage». -
Ручная настройка прослушивателя:
Если автоматическая команда не работает, попробуйте настроить прослушиватель вручную:winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="Your-FQDN";CertificateThumbprint="Your-Certificate-Thumbprint"}
-
Обзор и настройка политик безопасности:
Убедитесь, что никакие политики не ограничивают или не блокируют использование SSL-сертификатов по причине привилегий или подписи. -
Просмотрите журналы ошибок:
Проверьте журналы событий, чтобы выявить дополнительные сведения, которые могут подсказать причину проблемы.
Используя вышеуказанные шаги, вы можете более эффективно диагностировать и устранять проблему, связанную с созданием HTTPS-листенера для WinRM на вашем сервере. Помните, что настройка коммуникации по HTTPS требует детальности и внимательности к деталям, особенно когда работаете в корпоративной среде с внутренним центром сертификации.