Симптом
На одном и том же компьютере запросcurl к api.apiyi.com выполняется нормально, но программа на Python (особенно в окружении Conda) завершается с ошибкой:
Краткий ответ
Это не проблема на стороне сервера APIYI и не проблема с сертификатом. Ваша версия OpenSSL несовместима с промежуточным сетевым устройством в вашей сети. Сравните версии OpenSSL с обеих сторон:Почему это происходит
Начиная с OpenSSL 3.5, TLS-рукопожатие по умолчанию включает постквантовый обмен ключами (X25519MLKEM768). Это увеличивает первое сообщение рукопожатия (ClientHello) примерно с 300 байт до 1500 байт — больше одного TCP-сегмента, поэтому его приходится разделять на два сегмента. Некоторые корпоративные межсетевые экраны, устройства TLS-инспекции и устройства глубокой проверки пакетов на стороне ISP не могут обработать разделённый ClientHello или не распознают новый алгоритм обмена ключами и просто закрывают соединение. Клиент видит «EOF occurred in violation of protocol». Каждый пограничный узел APIYI поддерживает это постквантовое рукопожатие. 2026-09-11 (UTC+8) мы проверили каждый узел с OpenSSL 3.6.4, и все они успешно прошли проверку. Пакет рукопожатия отбрасывается внутри вашей сети до того, как достигает нас, поэтому на стороне сервера ничего нельзя исправить для вас.Три команды для проверки
Запустите их с бинарным файломopenssl из среды, где возникает сбой (сначала активируйте окружение Conda):
Исправления (выберите один)
Вариант 1: Отключите постквантовый обмен ключами через файл конфигурации (рекомендуется)
~/no-pq.cnf:Вариант 2: Понизьте версию OpenSSL в Conda
Вариант 3: Попросите вашу сетевую команду обновить промежуточное устройство
Дополнительные вопросы
Почему браузер открывает api.apiyi.com, а моя программа — нет?
Почему браузер открывает api.apiyi.com, а моя программа — нет?
Может ли такое произойти с Node.js, Go или Java?
Может ли такое произойти с Node.js, Go или Java?
Поможет ли подключение по IP или установка verify=False?
Поможет ли подключение по IP или установка verify=False?
Может ли APIYI отключить post-quantum рукопожатия на сервере?
Может ли APIYI отключить post-quantum рукопожатия на сервере?