【问题标题】:SSL error CERTIFICATE_VERIFY_FAILED with Locust when using Docker使用 Docker 时与 Locust 一起出现 SSL 错误 CERTIFICATE_VERIFY_FAILED
【发布时间】:2020-10-08 15:54:54
【问题描述】:

这是我第一次尝试 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

我按照指示运行 Locust:

docker-compose up --scale worker=4

如何使用 Locust 测试 https 网站?

提前致谢

问候

【问题讨论】:

    标签: locust


    【解决方案1】:

    在使用自签名证书连接到服务器时,我遇到了类似的问题。我使用以下代码(来自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)
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-10-02
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 2017-11-21
        • 1970-01-01
        • 2019-12-20
        • 1970-01-01
        • 2020-02-07
        相关资源
        最近更新 更多