Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[馃悰 Bug]: RemoteConnection.set_certificate_bundle_path set as None does NOT work #13931

Closed
Lhtyyy opened this issue May 11, 2024 · 6 comments
Labels
I-defect I-question Applied to questions. Issues should be closed and send the user to community resources.

Comments

@Lhtyyy
Copy link

Lhtyyy commented May 11, 2024

What happened?

   @classmethod
    def set_certificate_bundle_path(cls, path):
        """Set the path to the certificate bundle to verify connection to
        command executor. Can also be set to None to disable certificate
        validation.

        :Args:
            - path - path of a .pem encoded certificate chain.
        """
        cls._ca_certs = path

RemoteConnection.set_certificate_bundle_path(None)
but still request cert verify

if add

        pool_manager_init_args["cert_reqs"] = "CERT_NONE"

in venv/Lib/site-packages/selenium/webdriver/remote/remote_connection.py before line

    def _get_connection_manager(self):
        ....
        return urllib3.PoolManager(**pool_manager_init_args)

it will work

How can we reproduce the issue?

RemoteConnection.set_certificate_bundle_path(None)

Relevant log output

S:\github\pythonProject\web-auto\venv\Scripts\python.exe S:\github\pythonProject\web-auto\tests\pratices.py 
Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
    self._validate_conn(conn)
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 1099, in _validate_conn
    conn.connect()
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 653, in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 806, in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
               ^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 465, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 509, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 1046, in _create
    self.do_handshake()
  File "C:\applications\Python3\Lib\ssl.py", line 1317, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
    raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\tests\pratices.py", line 54, in <module>
    urllib3_test()
  File "S:\github\pythonProject\web-auto\tests\pratices.py", line 28, in urllib3_test
    resp = http_conn.request('GET', r'https://sessions.grid.com/status')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 136, in request
    return self.request_encode_url(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 183, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\poolmanager.py", line 444, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sessions.grid.com', port=443): Max retries exceeded with url: /status (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')))

Process finished with exit code 1

Operating System

Windows 11

Selenium version

python selenium 4.19.0

What are the browser(s) and version(s) where you see this issue?

.

What are the browser driver(s) and version(s) where you see this issue?

.

Are you using Selenium Grid?

selenium-server-4.19.0.jar

Copy link

@Lhtyyy, thank you for creating this issue. We will troubleshoot it as soon as we can.


Info for maintainers

Triage this issue by using labels.

If information is missing, add a helpful comment and then I-issue-template label.

If the issue is a question, add the I-question label.

If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted label.

If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C), add the applicable G-* label, and it will provide the correct link and auto-close the issue.

After troubleshooting the issue, please add the R-awaiting answer label.

Thank you!

@diemol diemol added I-issue-template Applied to issues not following the template, or missing information. and removed needs-triaging labels May 13, 2024
Copy link

Hi, @Lhtyyy.
Please follow the issue template, we need more information to reproduce the issue.

Either a complete code snippet and URL/HTML (if more than one file is needed, provide a GitHub repo and instructions to run the code), the specific versions used, or a more detailed description to help us understand the issue.

Note: If you cannot share your code and URL/HTML, any complete code snippet and URL/HTML that reproduces the issue is good enough.

Reply to this issue when all information is provided, thank you.

@Lhtyyy
Copy link
Author

Lhtyyy commented May 14, 2024

reproduce step:

  1. setup standalone selenium grid with below cmd:
    java -jar selenium-server-4.19.0.jar standalone --port 443 --selenium-manager true --https-private-key key.pkcs8 --https-certificate cert.pem --log standalone.log

the key.pkcs8 and cert.pem ref to info security

  1. run below python code, expected RemoteConnection.set_certificate_bundle_path(None) will skip cert verify
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.remote.remote_connection import RemoteConnection


def remote_driver():
    options = Options()
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    RemoteConnection.set_certificate_bundle_path(None)

    print('to connect remote')
    driver = webdriver.Remote('https://sessions.grid.com', options=options)
    print('to open url')
    driver.get('https://cn.bing.com/')
    print(driver.title)
    driver.quit()


if __name__ == '__main__':
    remote_driver()

BUT get below error:

S:\github\pythonProject\web-auto\venv\Scripts\python.exe S:\github\pythonProject\web-auto\tests\pratices.py 
to connect remote
Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
    self._validate_conn(conn)
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 1099, in _validate_conn
    conn.connect()
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 653, in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 806, in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
               ^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 465, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 509, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 1046, in _create
    self.do_handshake()
  File "C:\applications\Python3\Lib\ssl.py", line 1317, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
    raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\tests\pratices.py", line 21, in <module>
    remote_driver()
  File "S:\github\pythonProject\web-auto\tests\pratices.py", line 13, in remote_driver
    driver = webdriver.Remote('https://sessions.grid.com', options=options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 208, in __init__
    self.start_session(capabilities)
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 292, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 345, in execute
    response = self.command_executor.execute(driver_command, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 303, in execute
    return self._request(command_info[0], url, body=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 323, in _request
    response = self._conn.request(method, url, body=body, headers=headers)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 144, in request
    return self.request_encode_body(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 279, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\poolmanager.py", line 444, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sessions.grid.com', port=443): Max retries exceeded with url: /session (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')))

Process finished with exit code 1

python 3.12
selenium 4.19.0

@diemol
Copy link
Member

diemol commented May 15, 2024

RemoteConnection.set_certificate_bundle_path(None)

This is not doing anything because you are not modifying the object used to create the remote connection. You can follow this SO answer and adapt it to 4.20.

@diemol diemol added I-question Applied to questions. Issues should be closed and send the user to community resources. and removed I-issue-template Applied to issues not following the template, or missing information. labels May 15, 2024
Copy link

馃挰 Please ask questions at:

@Lhtyyy
Copy link
Author

Lhtyyy commented May 16, 2024

Hi, @diemol thanks for reply,
after following the SOanswer, it still NOT work for me.

and there is a note at urllibs:

New in version 1.25:
HTTPS connections are now verified by default (cert_reqs = "CERT_REQUIRED").

so in py/selenium/webdriver/remote/remote_connection.py#L235, if self._ca_certs is None, it will be still CERT_REQUIRED

below is the new test code:

import certifi
import urllib3
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.remote.remote_connection import RemoteConnection


def remote_driver():
    print(certifi.where())
    options = Options()
    # required
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')

    hub_url = r'https://sessions.grid.com'
    rc = RemoteConnection(hub_url, keep_alive=False, ignore_proxy=False)
    # rc.set_certificate_bundle_path(r'S:\github\pythonProject\web-auto\data\cert.pem')
    rc.set_certificate_bundle_path(None)

    print('to connect remote')
    driver = webdriver.Remote(rc, options=options, keep_alive=False)
    print('to open url')
    driver.get('https://cn.bing.com/')
    print(driver.title)
    driver.quit()


if __name__ == '__main__':
    remote_driver()

console output

S:\github\pythonProject\web-auto\venv\Lib\site-packages\certifi\cacert.pem
to connect remote
Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
    self._validate_conn(conn)
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 1099, in _validate_conn
    conn.connect()
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 653, in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connection.py", line 806, in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
               ^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 465, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\ssl_.py", line 509, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\applications\Python3\Lib\ssl.py", line 1046, in _create
    self.do_handshake()
  File "C:\applications\Python3\Lib\ssl.py", line 1317, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
    raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "S:\github\pythonProject\web-auto\tests\pratices2.py", line 29, in <module>
    remote_driver()
  File "S:\github\pythonProject\web-auto\tests\pratices2.py", line 21, in remote_driver
    driver = webdriver.Remote(rc, options=options, keep_alive=False)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 208, in __init__
    self.start_session(capabilities)
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 292, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 345, in execute
    response = self.command_executor.execute(driver_command, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 302, in execute
    return self._request(command_info[0], url, body=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 327, in _request
    response = http.request(method, url, body=body, headers=headers)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 144, in request
    return self.request_encode_body(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\_request_methods.py", line 279, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\poolmanager.py", line 444, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 877, in urlopen
    return self.urlopen(
           ^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "S:\github\pythonProject\web-auto\venv\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sessions.grid.com', port=443): Max retries exceeded with url: /session (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')))

Process finished with exit code 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-defect I-question Applied to questions. Issues should be closed and send the user to community resources.
Projects
None yet
Development

No branches or pull requests

2 participants