diff --git a/elasticsearch/connection/http_urllib3.py b/elasticsearch/connection/http_urllib3.py
index 90292852..6543e0e0 100644
--- a/elasticsearch/connection/http_urllib3.py
+++ b/elasticsearch/connection/http_urllib3.py
@@ -7,10 +7,11 @@ import warnings
 import gzip
 from base64 import decodestring
 
-# sentinal value for `verify_certs`.
-# This is used to detect if a user is passing in a value for `verify_certs`
-# so we can raise a warning if using SSL kwargs AND SSLContext.
-VERIFY_CERTS_DEFAULT = None
+# sentinel value for `verify_certs` and `ssl_show_warn`.
+# This is used to detect if a user is passing in a value
+# for SSL kwargs if also using an SSLContext.
+VERIFY_CERTS_DEFAULT = object()
+SSL_SHOW_WARN_DEFAULT = object()
 
 CA_CERTS = None
 
@@ -85,7 +86,7 @@ class Urllib3HttpConnection(Connection):
         http_auth=None,
         use_ssl=False,
         verify_certs=VERIFY_CERTS_DEFAULT,
-        ssl_show_warn=True,
+        ssl_show_warn=SSL_SHOW_WARN_DEFAULT,
         ca_certs=None,
         client_cert=None,
         client_key=None,
@@ -138,11 +139,11 @@ class Urllib3HttpConnection(Connection):
         # if providing an SSL context, raise error if any other SSL related flag is used
         if ssl_context and (
             (verify_certs is not VERIFY_CERTS_DEFAULT)
+            or (ssl_show_warn is not SSL_SHOW_WARN_DEFAULT)
             or ca_certs
             or client_cert
             or client_key
             or ssl_version
-            or ssl_show_warn
         ):
             warnings.warn(
                 "When using `ssl_context`, all other SSL related kwargs are ignored"
@@ -168,9 +169,12 @@ class Urllib3HttpConnection(Connection):
                 }
             )
 
-            # If `verify_certs` is sentinal value, default `verify_certs` to `True`
+            # Convert all sentinel values to their actual default
+            # values if not using an SSLContext.
             if verify_certs is VERIFY_CERTS_DEFAULT:
                 verify_certs = True
+            if ssl_show_warn is SSL_SHOW_WARN_DEFAULT:
+                ssl_show_warn = True
 
             ca_certs = CA_CERTS if ca_certs is None else ca_certs
             if verify_certs:

A wrong warning is shown when creating a secured elasticsearch ssl (since 7.5.0)
**Elasticsearch version** not relevant:

**`elasticsearch-py` version 7.5.1**: 

**When creating a secured elasticsearch ssl connection a warning is shown**:
```
http_urllib3.py:148: UserWarning: When using `ssl_context`, all other SSL related kwargs are ignored
  "When using `ssl_context`, all other SSL related kwargs are ignored"
```

This happens because the new `ssh_show_warn` parameter defaults to `True` but also is in the or statement that shows the above error. 

The warning is wrong, because we are only setting the ssl_context parameter and nothing else.

diff --git a/test_elasticsearch/test_connection.py b/test_elasticsearch/test_connection.py
index 073ce6bd..309041fd 100644
--- a/test_elasticsearch/test_connection.py
+++ b/test_elasticsearch/test_connection.py
@@ -143,6 +143,34 @@ class TestUrllib3Connection(TestCase):
         con = Urllib3HttpConnection()
         self.assertIsInstance(con.pool, urllib3.HTTPConnectionPool)
 
+    def test_no_warning_when_using_ssl_context(self):
+        ctx = ssl.create_default_context()
+        with warnings.catch_warnings(record=True) as w:
+            Urllib3HttpConnection(ssl_context=ctx)
+            self.assertEquals(0, len(w))
+
+    def test_warns_if_using_non_default_ssl_kwargs_with_ssl_context(self):
+        for kwargs in (
+            {"ssl_show_warn": False},
+            {"ssl_show_warn": True},
+            {"verify_certs": True},
+            {"verify_certs": False},
+            {"ca_certs": "/path/to/certs"},
+            {"ssl_show_warn": True, "ca_certs": "/path/to/certs"},
+        ):
+            kwargs["ssl_context"] = ssl.create_default_context()
+
+            with warnings.catch_warnings(record=True) as w:
+                warnings.simplefilter("always")
+
+                Urllib3HttpConnection(**kwargs)
+
+                self.assertEquals(1, len(w))
+                self.assertEquals(
+                    "When using `ssl_context`, all other SSL related kwargs are ignored",
+                    str(w[0].message),
+                )
+
 
 class TestRequestsConnection(TestCase):
     def _get_mock_connection(

pip install -e .[develop]
parse_log_pytest
pytest
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
attrs @ file:///croot/attrs_1668696182826/work
Babel==2.14.0
black==23.3.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
click==8.1.8
coverage==7.2.7
docutils==0.18.1
-e git+https://github.com/elastic/elasticsearch-py.git@1a1ab99d9a2b0825f5c23db6aedcce75d4cbf794#egg=elasticsearch
execnet==2.0.2
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
idna==3.10
imagesize==1.4.1
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
Jinja2==3.1.6
MarkupSafe==2.1.5
mock==5.2.0
mypy-extensions==1.0.0
nose==1.3.7
nosexcover==1.0.11
packaging @ file:///croot/packaging_1671697413597/work
pathspec==0.11.2
platformdirs==4.0.0
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
Pygments==2.17.2
pytest==7.1.2
pytest-asyncio==0.21.2
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
pytz==2025.2
PyYAML==6.0.1
requests==2.31.0
six==1.17.0
snowballstemmer==2.2.0
Sphinx==1.6.7
sphinx-rtd-theme==1.2.1
sphinxcontrib-jquery==2.0.0
sphinxcontrib-serializinghtml==1.1.5
sphinxcontrib-websupport==1.2.4
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typed-ast==1.5.5
typing_extensions==4.7.1
urllib3==2.0.7
zipp @ file:///croot/zipp_1672387121353/work

name: elasticsearch-py
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - babel==2.14.0
      - black==23.3.0
      - charset-normalizer==3.4.1
      - click==8.1.8
      - coverage==7.2.7
      - docutils==0.18.1
      - execnet==2.0.2
      - idna==3.10
      - imagesize==1.4.1
      - jinja2==3.1.6
      - markupsafe==2.1.5
      - mock==5.2.0
      - mypy-extensions==1.0.0
      - nose==1.3.7
      - nosexcover==1.0.11
      - pathspec==0.11.2
      - platformdirs==4.0.0
      - pygments==2.17.2
      - pytest-asyncio==0.21.2
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
      - pytz==2025.2
      - pyyaml==6.0.1
      - requests==2.31.0
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==1.6.7
      - sphinx-rtd-theme==1.2.1
      - sphinxcontrib-jquery==2.0.0
      - sphinxcontrib-serializinghtml==1.1.5
      - sphinxcontrib-websupport==1.2.4
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
      - urllib3==2.0.7
prefix: /opt/conda/envs/elasticsearch-py

test_elasticsearch/test_connection.py::TestUrllib3Connection::test_no_warning_when_using_ssl_context test_elasticsearch/test_connection.py::TestUrllib3Connection::test_warns_if_using_non_default_ssl_kwargs_with_ssl_context
test_elasticsearch/test_connection.py::TestUrllib3Connection::test_api_key_auth test_elasticsearch/test_connection.py::TestUrllib3Connection::test_default_user_agent test_elasticsearch/test_connection.py::TestUrllib3Connection::test_doesnt_use_https_if_not_specified test_elasticsearch/test_connection.py::TestUrllib3Connection::test_http_auth test_elasticsearch/test_connection.py::TestUrllib3Connection::test_http_auth_list test_elasticsearch/test_connection.py::TestUrllib3Connection::test_http_auth_tuple test_elasticsearch/test_connection.py::TestUrllib3Connection::test_http_cloud_id test_elasticsearch/test_connection.py::TestUrllib3Connection::test_http_compression test_elasticsearch/test_connection.py::TestUrllib3Connection::test_keep_alive_is_on_by_default test_elasticsearch/test_connection.py::TestUrllib3Connection::test_ssl_context test_elasticsearch/test_connection.py::TestUrllib3Connection::test_timeout_set test_elasticsearch/test_connection.py::TestUrllib3Connection::test_uses_https_if_verify_certs_is_off test_elasticsearch/test_connection.py::TestRequestsConnection::test_api_key_auth test_elasticsearch/test_connection.py::TestRequestsConnection::test_body_attached test_elasticsearch/test_connection.py::TestRequestsConnection::test_conflict_error_is_returned_on_409 test_elasticsearch/test_connection.py::TestRequestsConnection::test_custom_headers test_elasticsearch/test_connection.py::TestRequestsConnection::test_custom_http_auth_is_allowed test_elasticsearch/test_connection.py::TestRequestsConnection::test_default_headers test_elasticsearch/test_connection.py::TestRequestsConnection::test_defaults test_elasticsearch/test_connection.py::TestRequestsConnection::test_failed_request_logs_and_traces test_elasticsearch/test_connection.py::TestRequestsConnection::test_head_with_404_doesnt_get_logged test_elasticsearch/test_connection.py::TestRequestsConnection::test_http_auth test_elasticsearch/test_connection.py::TestRequestsConnection::test_http_auth_attached test_elasticsearch/test_connection.py::TestRequestsConnection::test_http_auth_list test_elasticsearch/test_connection.py::TestRequestsConnection::test_http_auth_tuple test_elasticsearch/test_connection.py::TestRequestsConnection::test_http_cloud_id test_elasticsearch/test_connection.py::TestRequestsConnection::test_merge_headers test_elasticsearch/test_connection.py::TestRequestsConnection::test_not_found_error_is_returned_on_404 test_elasticsearch/test_connection.py::TestRequestsConnection::test_params_properly_encoded test_elasticsearch/test_connection.py::TestRequestsConnection::test_repr test_elasticsearch/test_connection.py::TestRequestsConnection::test_request_error_is_returned_on_400 test_elasticsearch/test_connection.py::TestRequestsConnection::test_success_logs_and_traces test_elasticsearch/test_connection.py::TestRequestsConnection::test_timeout_set test_elasticsearch/test_connection.py::TestRequestsConnection::test_url_prefix test_elasticsearch/test_connection.py::TestRequestsConnection::test_uses_https_if_verify_certs_is_off
elasticsearch/connection/http_urllib3.py
elasticsearch/connection/http_urllib3.py