Проблема со слишком маленькими ключами DH обсуждается подробно в https://weakdh.org` с различными исправлениями.
Теперь в вашем случае это зависит от OpenSSL, который Python использует под капотом.Это жестко закодировано, чтобы отклонить слишком маленькие значения.
Посмотрите на: Как отклонить слабые параметры DH в клиенте OpenSSL?
В настоящее время OpenSSL в клиентережим останавливает рукопожатие только в том случае, если длина ключа выбранных сервером параметров DH меньше 768 бит (жестко задан в источнике).
Основываясь на ответе, вы можете использовать SSL_CTX_set_tmp_dh_callback
и SSL_set_tmp_dh_callback
для управлениячто вам больше по вкусу ... за исключением того, что в то время он не работал на стороне клиента, а только на стороне сервера.ветка 1.1.0
для этой проблемы.Кажется, он намекает на коммит 2001129f096d10bbd815936d23af3e97daf7882d
в 1.0.2
, поэтому сначала, возможно, попробуйте более новую версию OpenSSL (вы не указали, какие версии вы используете).
Однако даже если вам удастся заставить все работатьс OpenSSL вам все еще нужен ваш Python для его использования (так что, вероятно, для самостоятельной компиляции python), а затем для работы над этим у вас есть специальный API внутри Python ... если честно, я думаю, что вы потеряете гораздо меньше времени на исправление службы (даже есливы говорите, что не можете его изменить) вместо того, чтобы пытаться изуродовать клиента, так как отказ от маленьких ключей - хорошая вещь (по причинам, объясненным в первой ссылке).