Ошибка связи 1030: невозможно открыть сокет на сервере tls
Обновлено: 21.11.2024
Если вы собираетесь использовать сценарий PowerShell для настройки SSL на агентах VDA и не собираетесь указывать отпечаток сертификата SSL, убедитесь, что сертификат находится в области «Локальный компьютер» > «Личные» > «Сертификаты» в хранилище сертификатов. Если в этом расположении находится более одного сертификата, будет использоваться первый найденный сертификат.
Примечание. После смены порта Studio может отобразить сообщение о совместимости лицензии и обновлении. Чтобы устранить эту проблему, повторно зарегистрируйте экземпляры службы, используя следующую последовательность командлетов PowerShell:
О настройках SSL на VDA
- Какой сертификат в хранилище сертификатов использовать для SSL.
- Какой номер порта TCP использовать для соединений SSL.
Брандмауэр Windows (если он включен) должен быть настроен на разрешение входящих подключений через этот TCP-порт. Эта конфигурация выполняется за вас при использовании сценария PowerShell.
Поддерживаемые версии протокола SSL следуют иерархии (от низшей к высшей): SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2. Вы указываете минимально допустимую версию; разрешены все протокольные соединения, использующие эту или более позднюю версию.
Например, если вы укажете TLS 1.1 в качестве минимальной версии, тогда будут разрешены подключения протоколов TLS 1.1 и TLS 1.2. Если вы укажете SSL 3.0 в качестве минимальной версии, тогда будут разрешены соединения для всех поддерживаемых версий. Если вы укажете TLS 1.2 в качестве минимальной версии, разрешены только соединения TLS 1.2.
Набор шифров — это список распространенных шифров SSL. Когда клиент подключается и отправляет список поддерживаемых шифров SSL, VDA сопоставляет один из шифров клиента с одним из шифров в настроенном наборе шифров и принимает соединение. Если клиент отправляет шифр, которого нет в наборе шифров VDA, VDA отклоняет соединение.
Группа доставки не может содержать несколько VDA с настроенным SSL и несколько VDA без настроенного SSL. Когда вы настраиваете SSL для группы доставки, вы должны уже настроить SSL для всех VDA в этой группе доставки.
Настройте SSL на VDA с помощью сценария PowerShell
Сценарий Enable-VdaSSL.ps1 включает или отключает прослушиватель SSL на VDA. Этот сценарий доступен в папке Support > Tools > SslSupport на установочном носителе.
- Citrix ICA (по умолчанию: 1494)
- Citrix CGP (по умолчанию: 2598)
- Citrix WebSocket (по умолчанию: 8008)
В результате пользователи могут подключаться только через SSL; они не могут использовать необработанные ICA, CGP или WebSocket для подключения.
Сценарий содержит следующие описания синтаксиса, а также дополнительные примеры; вы можете использовать такой инструмент, как Notepad++, для просмотра этой информации.
Необходимо указать параметр –Enable или –Disable; все остальные параметры являются необязательными.
Синтаксис
] [-SSLMinVersion “ ”] [-SSLCipherSuite“ ”] [-CertificateThumbPrint “”]
Примеры
Следующий сценарий устанавливает и включает прослушиватель SSL, используя значения по умолчанию для всех необязательных параметров.
Следующий сценарий устанавливает и включает прослушиватель SSL и указывает порт SSL 400, набор шифров GOV и минимальное значение протокола SSL TLS 1.2. Следующие сценарии устанавливают и включают прослушиватель SSL на непостоянной машине (каталог MCS), добавляют отпечаток и имя машины сервера vda и минимальное значение протокола SSL TLS 1.2.
Следующий сценарий отключает прослушиватель SSL на VDA.
Настроить SSL на VDA вручную
- Запустите консоль управления Microsoft (MMC): Пуск > Выполнить > mmc.exe.
- Добавьте оснастку «Сертификаты» на MMC:
- Выберите «Файл» > «Добавить/удалить оснастку».
- Выберите Сертификаты и нажмите Добавить.
- При появлении запроса «Эта оснастка всегда будет управлять сертификатами для:» выберите «Учетная запись компьютера» и нажмите «Далее».
- При появлении запроса «Выберите компьютер, которым должна управлять эта оснастка» выберите «Локальный компьютер» и нажмите «Готово».
- Для VDA для ОС Windows для настольных ПК: "PORTICASERVICE"
- Для агента VDA для ОС Windows Server: "TERMSERVICE"
- Отредактируйте ключ отпечатка SSL и скопируйте значение отпечатка сертификата SSL в это двоичное значение. Вы можете спокойно игнорировать неизвестные элементы в диалоговом окне "Редактировать двоичное значение" (например, "0000" и специальные символы).
- Отредактируйте ключ SSLEnabled и измените значение DWORD на 1. (Чтобы отключить SSL позже, измените значение DWORD на 0.)
- Если вы хотите изменить настройки по умолчанию (необязательно), используйте следующий путь в том же пути реестра:
- SSLPort DWORD — номер порта SSL. По умолчанию: 443.
- SSLMinVersion DWORD: 1 = SSL 3.0, 2 = TLS 1.0, 3 = TLS 1.1, 4 = TLS 1.2. По умолчанию: 2 (TLS 1.0).
- SSLCipherSuite DWORD — 1 = GOV, 2 = COM, 3 = ВСЕ. По умолчанию: 3 (ВСЕ).
Настроить SSL в группах доставки
- В Studio откройте консоль PowerShell.
- Запустите asnp Citrix.*, чтобы загрузить командлеты продуктов Citrix.
- Запустите Get-BrokerAccessPolicyRule –DesktopGroupName ‘ ’ | Set-BrokerAccessPolicyRule –HdxSslEnabled $true.
где — имя группы доставки, содержащей VDA.
Устранение неполадок
При возникновении ошибки подключения проверьте журнал системных событий VDA.
Если при использовании Receiver for Windows вы получаете сообщение об ошибке подключения (например, 1030), указывающее на ошибку SSL, отключите Desktop Viewer и повторите попытку подключения; несмотря на то, что соединение по-прежнему не будет установлено, может быть предоставлено объяснение основной проблемы с SSL (например, вы указали неверный шаблон при запросе сертификата из центра сертификации).
Теперь вы просматриваете эту ветку и будете получать электронные письма, когда в ней будет активность. Нажмите еще раз, чтобы прекратить просмотр, или перейдите в свой профиль/домашнюю страницу, чтобы управлять просмотренными цепочками.
Вы прекратили просмотр этой ветки и больше не будете получать электронные письма, когда в ней есть активность. Нажмите еще раз, чтобы начать просмотр.
Мне не удается подключиться к защищенному веб-сокету из-за приведенной ниже ошибки на устройстве iOS (iOS 12 и 13).
Ниже приведены выходные данные консоли, которые я смог получить с устройства и консольного приложения на своем ноутбуке Mac.
КОНСОЛЬ ОТЛАДКИ XCODE
КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ ДЛЯ MAC
Блок сервера NGINX для конечной точки:
Есть мысли о том, почему это проблема на iOS?
Я также задавал этот вопрос на SO:
Заранее спасибо за любую помощь/подсказки.
Принятый ответ
Здесь происходит несколько вещей; во-первых, вы правы в том, что рукопожатие не выполняется из-за того, что клиент не может проверить сертификат сервера. Причина, по которой клиент не может проверить сертификат на сервере, заключается в том, что для проверки клиенту не предоставлены значения SCT (временные метки подписанного сертификата). Также ответ OSCP равен 0. Обратите внимание на строки:
Во-вторых, причина, по которой это работает в браузере, заключается в том, что ваш браузер может не настраивать TLS-соединение с TLS 1.3. Это означает, что проверка сертификата с обеих сторон не такая строгая, как клиент iOS, пытающийся настроить соединение как TLS 1.3. Если соединение на стороне браузера работает с TLS 1.3, браузер может не работать из-за отсутствия данных SCT, как это происходит в iOS.
Я бы порекомендовал повторить это со встроенными значениями SCT в сертификате, или вы можете вручную оценить доверие и решить, будет ли это ошибкой. Я настоятельно рекомендую вам ознакомиться с моей первой рекомендацией, так как это даст вам то, что вам действительно нужно в долгосрочной перспективе.
DTS Engineering, CoreOS
Ответы
Здесь происходит несколько вещей; во-первых, вы правы в том, что рукопожатие не выполняется из-за того, что клиент не может проверить сертификат сервера. Причина, по которой клиент не может проверить сертификат на сервере, заключается в том, что для проверки клиенту не предоставлены значения SCT (временные метки подписанного сертификата). Также ответ OSCP равен 0. Обратите внимание на строки:
Во-вторых, причина, по которой это работает в браузере, заключается в том, что ваш браузер может не настраивать TLS-соединение с TLS 1.3. Это означает, что проверка сертификата с обеих сторон не такая строгая, как клиент iOS, пытающийся настроить соединение как TLS 1.3. Если соединение на стороне браузера работает с TLS 1.3, браузер может не работать из-за отсутствия данных SCT, как это происходит в iOS.
Я бы порекомендовал повторить это со встроенными значениями SCT в сертификате, или вы можете вручную оценить доверие и решить, будет ли это ошибкой. Я настоятельно рекомендую вам ознакомиться с моей первой рекомендацией, так как это даст вам то, что вам действительно нужно в долгосрочной перспективе.
Читайте также: