urllib2 SSL3_CHECK_CERT_AND_ALGORITHM:dh密钥太小

时间:2018-09-21 08:57:08

标签: python security ssl soap urllib2

尝试使用CONTENT发送SOAP请求,我正在使用if($("body").hasClass("logged-in"))

我不太了解安全性,因此我认为我的计算机或服务器计算机上的安全性密钥太小,我不确定如何解决。我是否会生成一些新密钥并创建自定义打开器?任何帮助/指导都将有所帮助。

Stacktrace:

wordpress_456b46f4d1347f23495548c111992d89

我正在查看以下链接

  

Python - requests.exceptions.SSLError - dh key too small

     

https://bugs.python.org/issue24985

     

https://unix.stackexchange.com/questions/333877/how-to-find-which-key-exactly-dh-key-too-small-openssl-error-is-about

不确定如何实现他们所谈论的内容,再次感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我正在Python 3.7中使用此废料:

import ssl
from urllib.request import HTTPSHandler

from suds.transport.https import HttpAuthenticated


class SSLAuthenticated(HttpAuthenticated):
    """ Enables SSL context for Suds. """

    def __init__(self, ssl_ciphers: str = ssl._DEFAULT_CIPHERS, **kwargs):
        self.ssl_ciphers = ssl_ciphers
        super().__init__(**kwargs)

    def u2handlers(self):
        handlers = super().u2handlers()
        ssl_context = ssl.create_default_context()
        if self.ssl_ciphers is not None:
            ssl_context.set_ciphers(self.ssl_ciphers)
        ssl_context_handler = HTTPSHandler(context=ssl_context)
        handlers = [ssl_context_handler] + handlers
        return handlers

client = suds.Client(transport=SSLAuthenticated(ssl_ciphers='HIGH:!DH'))

要获取网站上可用密码的列表,请运行:

nmap --script ssl-enum-ciphers -p 443 affected.website.com

从A级密码中一一选择并进行如下检查:

openssl s_client -connect affected.website.com:443 -cipher 'HIGH:!DH' -brief

答案 1 :(得分:0)

我通过在DEFAULT@SECLEVEL=2中更改DEFAULT@SECLEVEL=1-> /etc/ssl/openssl.cnf来解决了这个问题