Skip to content

Certificate Verification Failing with urllib3>=1.25 #11

@joshowen

Description

@joshowen

The following error happens with urllib3>=1.25, and is not present with urllib<1.25. For what it's worth, this was triggered with the NewRelic Airflow metrics package.

scheduler    | [2020-03-02 21:37:22,914] {harvester.py:74} ERROR - New Relic send_batch failed with an exception.
scheduler    | Traceback (most recent call last):
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 485, in wrap_socket
scheduler    |     cnx.do_handshake()
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1934, in do_handshake
scheduler    |     self._raise_ssl_error(self._ssl, result)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1671, in _raise_ssl_error
scheduler    |     _raise_current_error()
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
scheduler    |     raise exception_type(errors)
scheduler    | OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]
scheduler    | 
scheduler    | During handling of the above exception, another exception occurred:
scheduler    | 
scheduler    | Traceback (most recent call last):
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
scheduler    |     chunked=chunked,
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler    |     return wrapped(*args, **kwargs)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler    |     return wrapped(*args, **kwargs)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376, in _make_request
scheduler    |     self._validate_conn(conn)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn
scheduler    |     conn.connect()
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connection.py", line 360, in connect
scheduler    |     ssl_context=context,
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 370, in ssl_wrap_socket
scheduler    |     return context.wrap_socket(sock, server_hostname=server_hostname)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 491, in wrap_socket
scheduler    |     raise ssl.SSLError("bad handshake: %r" % e)
scheduler    | ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)
scheduler    | 
scheduler    | During handling of the above exception, another exception occurred:
scheduler    | 
scheduler    | Traceback (most recent call last):
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic_airflow_plugin/harvester.py", line 67, in _loop
scheduler    |     response = client.send_batch(items, common=common)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic_telemetry_sdk/client.py", line 170, in send_batch
scheduler    |     return self._pool.urlopen("POST", self.URL, body=payload, headers=headers)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
scheduler    |     method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/retry.py", line 376, in increment
scheduler    |     raise six.reraise(type(error), error, _stacktrace)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/packages/six.py", line 734, in reraise
scheduler    |     raise value.with_traceback(tb)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
scheduler    |     chunked=chunked,
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler    |     return wrapped(*args, **kwargs)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler    |     return wrapped(*args, **kwargs)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376, in _make_request
scheduler    |     self._validate_conn(conn)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn
scheduler    |     conn.connect()
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connection.py", line 360, in connect
scheduler    |     ssl_context=context,
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 370, in ssl_wrap_socket
scheduler    |     return context.wrap_socket(sock, server_hostname=server_hostname)
scheduler    |   File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 491, in wrap_socket
scheduler    |     raise ssl.SSLError("bad handshake: %r" % e)
scheduler    | urllib3.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)```

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions