使用Docker时出现蝗虫SSL错误CERTIFICATE_VERIFY_FAILED

时间:2020-06-18 14:39:10

标签: locust

这是我第一次在Locus尝试,不幸的是我不了解Python。

我正在尝试向有效的https服务器发送简单请求,但看到此错误:

SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法 获得本地发行人证书

经过研究,我尝试添加以下内容:

import gevent
import geventhttpclient.connectionpool

geventhttpclient.connectionpool.SSLConnectionPool.default_options = {
    "cert_reqs": gevent.ssl.CERT_NONE,
}

或者这个:

import requests
requests.packages.urllib3.disable_warnings() # disable SSL warnings

我按照指示运行蝗虫:

docker-compose up --scale worker=4

如何使用Locust测试https网站?

预先感谢

致谢

2 个答案:

答案 0 :(得分:0)

使用自签名证书连接到服务器时,我遇到了类似的问题。我使用以下代码(来自Locust)成功禁用了证书验证:

import gevent
from geventhttpclient.url import URL
from geventhttpclient import HTTPClient

def insecure_ssl_context_factory():
    context = gevent.ssl.create_default_context()
    context.check_hostname = False
    context.verify_mode = gevent.ssl.CERT_NONE
    return context

url = URL(server)
http = HTTPClient.from_url(url, insecure=True, ssl_context_factory=insecure_ssl_context_factory)

答案 1 :(得分:0)

您可以通过添加以下方法来关闭验证:

def on_start(self):
    """ on_start is called when a Locust start before any task is scheduled """
    self.client.verify = False