Рейтинг:0

Сброс подключения для HTTPS в ADFS

флаг pl

Я настроил сервер Windows в виртуальной коробке с сетью только для хоста в качестве рабочей среды. У меня проблема с доступом по HTTPS из сети только хоста. Я настроил контроллер домена и ADFS на сервере Windows 2019, используя самозаверяющий сертификат для ADFS. Вот несколько тестов, которые я сделал, чтобы попытаться изолировать проблему. Я тестирую URL-адрес метаданных /FederationMetadata/2007-06/FederationMetadata.xml.

  • Если я открою IE на виртуальной машине и перейду к конечной точке метаданных на localhost, я получу сообщение «Этот сайт небезопасен», но могу обойти предупреждение и получить метаданные.
  • Если я перехожу к хосту только по IP-адресу интерфейса, IE просто показывает сообщение «Не удается безопасно подключиться к этой странице», и это невозможно обойти.
  • Если я скручиваюсь от хоста к IP-адресу только хоста с флагом -k к порту 443, я получаю сброс соединения.
  • Если я скручиваюсь с портом 80 только на IP-адресе хоста, я получаю страницу 404, как и ожидалось.
  • Пинг от хоста работает нормально.
  • Telnet с хоста на 443 подключается

Я отключил брандмауэр Windows.

сертификат был сгенерирован с использованием этого powershell

 $selfSignedCert = New-SelfSignedCertificateEx `
     -Subject "CN=adfs.samlsecurity.com" `
     -ProviderName "Microsoft Enhanced RSA and AES Cryptographic Provider" `
     -KeyLength 2048 -FriendlyName 'OAFED SelfSigned' -SignatureAlgorithm sha256 `
     -EKU "Аутентификация сервера", "Аутентификация клиента" `
     -KeyUsage "Шифрование ключей, цифровая подпись" `
     -Exportable -StoreLocation "LocalMachine"

Таким образом, кажется, что подключение есть, так как я могу получить страницу HTTP 404, но по какой-то причине я получаю отказ в подключении от 443. Я предполагаю, что что-то не так с настройкой TLS в Windows, но я не могу понять, что.

Jevgenij Martynenko avatar
флаг us
Пожалуйста, проверьте конфигурацию прослушивателя HTTP, выполнив следующие команды: `netsh http show iplisten`, `netsh http show sslcert`
флаг pl
https://gist.github.com/rasmusson/434490754d0f6c2ae3c05555d361f5f1
Рейтинг:0
флаг pl

Нашел! посмотрел пакеты в Wireshark. Единственная разница между пакетами, которые получили ответ от сервера, и тот, который не получил, заключалась в использовании расширения SNI в приветствии клиента TLS.

Это привело меня к поиску SNI и сбросу соединения на сервере Windows. Оказывается, он использует функцию SNI, чтобы иметь возможность доставлять разные сертификаты на основе имени сервера recester в TLS SNI.

ADFS по умолчанию не регистрирует никаких резервных сертификатов для других имен серверов, кроме localhost и FQDN для ADFS. Когда я использовал IP-адрес для ADFS, сертификат не подходил, и сервер закрыл соединение.

Сначала я решил это, зарегистрировав сертификат по умолчанию, используя

netsh add sslcert ipport=0.0.0.0:442 appid='{<ADFS_GUID>}' certhash=<thumprint без пробела>

Позже я решил это, добавив полное доменное имя и IP-адрес в файл hosts.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.