summaryrefslogtreecommitdiffstats
path: root/Doc/library/ssl.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/ssl.rst')
-rw-r--r--Doc/library/ssl.rst20
1 files changed, 20 insertions, 0 deletions
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 84b3c25..3564855 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -151,6 +151,12 @@ purposes.
variable :envvar:`SSLKEYLOGFILE` is set, :func:`create_default_context`
enables key logging.
+ The default settings for this context include
+ :data:`VERIFY_X509_PARTIAL_CHAIN` and :data:`VERIFY_X509_STRICT`.
+ These make the underlying OpenSSL implementation behave more like
+ a conforming implementation of :rfc:`5280`, in exchange for a small
+ amount of incompatibility with older X.509 certificates.
+
.. note::
The protocol, options, cipher and other settings may change to more
restrictive values anytime without prior deprecation. The values
@@ -172,6 +178,15 @@ purposes.
ctx = ssl.create_default_context(Purpose.CLIENT_AUTH)
ctx.options &= ~ssl.OP_NO_SSLv3
+ .. note::
+ This context enables :data:`VERIFY_X509_STRICT` by default, which
+ may reject pre-:rfc:`5280` or malformed certificates that the
+ underlying OpenSSL implementation otherwise would accept. While disabling
+ this is not recommended, you can do so using::
+
+ ctx = ssl.create_default_context()
+ ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT
+
.. versionadded:: 3.4
.. versionchanged:: 3.4.4
@@ -194,6 +209,11 @@ purposes.
:data:`PROTOCOL_TLS_SERVER` protocol instead of generic
:data:`PROTOCOL_TLS`.
+ .. versionchanged:: 3.13
+
+ The context now uses :data:`VERIFY_X509_PARTIAL_CHAIN` and
+ :data:`VERIFY_X509_STRICT` in its default verify flags.
+
Exceptions
^^^^^^^^^^