diff --git a/src/urllib3/connection.py b/src/urllib3/connection.py
index a138bb2a..86b9198a 100644
--- a/src/urllib3/connection.py
+++ b/src/urllib3/connection.py
@@ -429,7 +429,7 @@ def _match_hostname(cert, asserted_hostname):
     try:
         match_hostname(cert, asserted_hostname)
     except CertificateError as e:
-        log.error(
+        log.warning(
             "Certificate did not match expected hostname: %s. " "Certificate: %s",
             asserted_hostname,
             cert,

diff --git a/test/test_connection.py b/test/test_connection.py
index 5969a089..77794898 100644
--- a/test/test_connection.py
+++ b/test/test_connection.py
@@ -32,7 +32,7 @@ class TestConnection(object):
         cert = {"subjectAltName": [("DNS", "foo")]}
         asserted_hostname = "bar"
         try:
-            with mock.patch("urllib3.connection.log.error") as mock_log:
+            with mock.patch("urllib3.connection.log.warning") as mock_log:
                 _match_hostname(cert, asserted_hostname)
         except CertificateError as e:
             assert "hostname 'bar' doesn't match 'foo'" in str(e)

urllib3 should not log an error on certificate mismatch
Logging an error and then reraising the exception does not achieve much as the application code will have to handle the exception anyway. It's better to let the application decide if it's a noteworthy event or not.

I personally don't think that a certificate mismatch is different from a server not responding or the other dozens of failures that can happen while marking an HTTP request (where urllib3 does not log an error).

In my case the "error" is reported to Sentry but there is nothing I can do as a client to fix it, which is usually a pretty good indicator that the log level should be changed to something else. If it was up to me I would change it to an `info` level.

https://github.com/urllib3/urllib3/blob/2c055b4a60affa3529660b928fff375fde3993f7/src/urllib3/connection.py#L428-L440
test/test_connection.py::TestConnection::test_match_hostname_mismatch
test/test_connection.py::TestConnection::test_match_hostname_match test/test_connection.py::TestConnection::test_match_hostname_empty_cert test/test_connection.py::TestConnection::test_match_hostname_no_cert