解决python发送https请求,出现证书错误,及报错提示

详细报错信息如下:

Error
Traceback (most recent call last):
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\connectionpool.py", line 344, in _make_request
    self._validate_conn(conn)
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\connectionpool.py", line 843, in _validate_conn
    conn.connect()
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\connection.py", line 370, in connect
    ssl_context=context)
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\util\ssl_.py", line 368, in ssl_wrap_socket
    return context.wrap_socket(sock)
  File "D:\python\p\lib\ssl.py", line 412, in wrap_socket
    session=session
  File "D:\python\p\lib\ssl.py", line 853, in _create
    self.do_handshake()
  File "D:\python\p\lib\ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\ WebWafUi\venv\lib\site-packages\requests\adapters.py", line 449, in send
    timeout=timeout
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "E:\ WebWafUi\venv\lib\site-packages\urllib3\util\retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.26.159', port=443): Max retries exceeded with url: /1.mdb/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1056)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\python\p\lib\unittest\case.py", line 59, in testPartExecutor
    yield
  File "D:\python\p\lib\unittest\case.py", line 615, in run
    testMethod()
  File "E:\ WebWafUi\runtest.py", line 54, in test_case
    Attack().httpsCom()
  File "E:\ WebWafUi\utils\WordPressCC.py", line 102, in httpsCom
    response=requests.get(httpsComA[0])
  File "E:\ WebWafUi\venv\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "E:\ WebWafUi\venv\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "E:\ WebWafUi\venv\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "E:\ WebWafUi\venv\lib\site-packages\requests\sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "E:\ WebWafUi\venv\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.26.159', port=443): Max retries exceeded with url: /1.mdb/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1056)')))


Assertion failed
所有用例执行后会调用一次tearDown进行环境清理
测试结束


Ran 1 test in 15.671s

FAILED (errors=1)

Process finished with exit code 1

Assertion failed

Assertion failed

错误代码如下:

    def httpsCom(self):
        time.sleep(2)
        response=requests.get(httpsComA[0])
        print(response.status_code)
        print('https攻击完毕')
        time.sleep(1)

解决办法:

 #执行https正常攻击请求3次
    def httpsCom(self):
        time.sleep(2)
        # 屏蔽warning信息
        requests.packages.urllib3.disable_warnings()
        response=requests.get(httpsComA[0],verify=False)  #verify=False 默认为True,设为False,这是对于证书不验证进行访问
        print(response.status_code)
        print('https攻击完毕')
        time.sleep(1)

注:python用requests发送https的请求时,有安全验证,将验证设置为false 即可verify=False

发布了84 篇原创文章 · 获赞 46 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/gufenchen/article/details/101032169
今日推荐