Форум сайта python.su
Использую Python 3.7.1 с библиотеками OpenSSL 1.1.1k, при обращении к сайтам всё работает нормально. В данный момент собираюсь переходить на использование OpenSSL 3.0.0, но при замене библиотек версии 1.1.1k на 3.0.0 alpha 17, начинаю получать такие ошибки, как на скриншоте (выделены жёлтым):
Целевая ОС у меня Windows Server 2003 R2 Standard x86, хотя пробовал и на Windows Server 2008 R2 - ошибки те же. Обновить Python на целевой ОС не представляется возможным. Ошибки могут всплывать через достаточно длительный промежуток времени (30 минут и более), но появляются при обращении практически к любому сайту по https. Что это и как исправить?
P.S. При компиляции OpenSSL 1.1.1k и 3.0.0 alpha 17 использовались дефолтные опции, для компиляции использовался MSYS2 и MinGW.
Офлайн
> с библиотеками OpenSSL 1.1.1k, при обращении к сайтам всё работает нормально. В данный момент собираюсь переходить на использование OpenSSL 3.0.0
Зачем?
Офлайн
Во-первых, хочу заранее подготовиться к выходу финальной версии OpenSSL 3.0.0, а поддержка версии 1.1.1 прекратится через два года.
Во-вторых, в данный момент изучаю новые возможности версии 3.0.0, преследуя академические цели.
На первый взгляд, базовый функционал криптобиблиотек на уровне экспортируемых функций, используемых Python, не изменился (в версии 3.0.0 он расширен по сравнению с 1.1.1k) - и хотелось бы разобраться в причине появления этих ошибок.
Офлайн
Оказалось, задача хорошего решения не имеет. В течение недели пытался использовать различные способы, в частности, очень надеялся на новую опцию SSL_OP_IGNORE_UNEXPECTED_EOF в OpenSSL 3.0.0 - всё оказалось тщетно. Её переключение не помогает. Вдобавок, выяснилось, что это не единственное затруднение - Python 3.7.1 оказался действительно несовместим с OpenSSL 3.0.0. Всплыли более серъёзные проблемы, в частности, невозможность скачать с сайта rarlab.com и неработоспособность git при использовании библиотек 3-й версии OpenSSL.
Тему можно закрыть.
Офлайн
Проблему решил совместно с коллективом разработчиков, пришлось оплатить разработку нескольких модулей. Жаль, что никто из участников этого форума не взялся помочь, но поскольку я довольно сильно пострадал материально, бесплатно поделиться решением с остальными теперь, увы, не смогу…
Офлайн
TarnumА зря. Вдруг тебе просто глушанули эти сообщения, которые ты убрать хотел. И таким образом у тебя срабатывает критерий оценки “я теперь не вижу сообщения об ошибках - значит, всё исправилось”. Вот это был бы прикол.
но поскольку я довольно сильно пострадал материально, бесплатно поделиться решением с остальными теперь, увы, не смогу
TarnumТо есть ты реально собрался рабочий сервер поставить в зависимость от альфа-версии чего угодно? Знаешь, о чём это говорит сходу? О том, что ты абсолютно не шаришь как в безопасности, так и в софте. Соответственно, если безопасностью (а SSL - это безопасность) занимается дилетант, то его можно поиметь. Сервер твой никому даром не нужен, а денежки - да.
на 3.0.0 alpha 17
Офлайн
py.user.nextНикто ничего не глушанул, если бы Вы поинтересовались историей этого вопроса, узнали бы, что ошибки “unexpected eof while reading” появились ещё в финальной версии OpenSSL 1.1.1e после соответствующего исправления проблемы TLS протокола, но выяснилось, что такие ошибки появляются на каждом сайте, и в версии 1.1.1f всё вернули обратно, т.к. исправление ломало почти все существующие приложения, использующие OpenSSL. Исправление было перенесено в версию 3.0.0, и добавлена опция SSL_OP_IGNORE_UNEXPECTED_EOF, которую требуется включить в таких случаях. Разработчики OpenSSL надеются, что весь веб постепенно устранит проблемы TLS протокола, и в опции отпадёт необходимость.
Вдруг тебе просто глушанули эти сообщения, которые ты убрать хотел. И таким образом у тебя срабатывает критерий оценки “я теперь не вижу сообщения об ошибках - значит, всё исправилось”.
py.user.nextВы даже не взглянули, когда было отправлено заглавное сообщение темы - 3 месяца назад. Конечно, в продакшне у меня уже девелоперская OpenSSL 3.0.0 beta-3, альфа версии давно канули в лету. Разумеется, приложение пока работает в тестовом режиме, стабильность подтверждается тестами, проблем с безопасностью не выявлено. Когда нет возможности присматривать за сервером - возвращаю прежний код на официально стабильной OpenSSL 1.1.1k, и готовлюсь к выходу официального финального релиза OpenSSL 3.0.0 в ближайшее время - как только он выйдет, сразу станет стандартом на ближайшее будущее.
То есть ты реально собрался рабочий сервер поставить в зависимость от альфа-версии чего угодно? Знаешь, о чём это говорит сходу? О том, что ты абсолютно не шаришь как в безопасности, так и в софте. Соответственно, если безопасностью (а SSL - это безопасность) занимается дилетант, то его можно поиметь. Сервер твой никому даром не нужен, а денежки - да.
Офлайн
TarnumЭто неинтересно. Просто бросилось в глаза, что человек боится, что его взломают, и из-за этого ставит самую последнюю версию, которую может найти, но при этом находит всего-то какую-то альфа-версию и тем самым, наоборот, ослабляет защиту, потому что альфа-версии потому так и называются, что это сигнал такой всем вокруг “ребята, не надо ставить эту программу, в ней могут быть ошибки”. Это не релиз.
Никто ничего не глушанул, если бы Вы поинтересовались историей этого вопроса
TarnumА вот прикол, знаешь, какой будет? Ты потратил ресурсы на разработку каких-то костылей и тут выходит релиз, в котором это всё исправлено и эти костыли просто не нужны.
и готовлюсь к выходу официального финального релиза OpenSSL 3.0.0 в ближайшее время - как только он выйдет, сразу станет стандартом на ближайшее будущее.
Отредактировано py.user.next (Авг. 18, 2021 12:46:47)
Офлайн
Tarnum
вы вы … просто что то с чем то
мало того что используете бету (черт с ним возможно есть причины)
но еще это и форк (ну лвдно может быть там все норм)
но как бу то этого мало это и закрытый форк WOW!
т.е. я так понимаю поддерживать вы его будете сами
на вашем бы месте я бы всеми правдами и не правдами … короче вам на оборот нужно протащить ваш патч в мастер-ветку а вы блин как голум прелесть )
Офлайн
Попробую ещё раз, видимо, меня не слышат или не читают, что я пишу:
py.user.nextЯ не использовал и не использую альфа-версии. Я 1 раз собрал альфа-версию для проверки 3 месяца назад, убедился, что не работает. И тут же стёр. Это понятно?
но при этом находит всего-то какую-то альфа-версию и тем самым, наоборот, ослабляет защиту
py.user.nextРазработчики OpenSSL уже давно объявили, что функционал и API версии 3.0.0 меняться больше не будут. Кроме исправления ошибок в коде, не относящихся к описанному в топике, всё пойдёт в релиз именно так, как есть сейчас.
Ты потратил ресурсы на разработку каких-то костылей и тут выходит релиз, в котором это всё исправлено и эти костыли просто не нужны.
AD0DE412Я использую то, что есть для целевой системы. Об этом писано в заглавном сообщении. И это не форк, а полнофункциональная официальная версия Python (не бета и не альфа). Бета-версия OpenSSL 3.0.0 используется мной в тестовом режиме для проверки работоспособности нового функционала, и будет окончательно внедрена в день выхода финального релиза 3.0.0. Надеюсь, это тоже понятно. И да, поддерживать сервер и проект я буду сам.
вы вы … просто что то с чем то
мало того что используете бету (черт с ним возможно есть причины)
но еще это и форк (ну лвдно может быть там все норм)
но как бу то этого мало это и закрытый форк WOW!
т.е. я так понимаю поддерживать вы его будете сами
Офлайн