Skip to content

Commit 80d603f

Browse files
committed
Mention old_where in README
1 parent d7e6af2 commit 80d603f

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

README.rst

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ of TLS hosts. It has been extracted from the `Requests`_ project.
88
Installation
99
------------
1010

11-
`certifi` is available on PyPI. Simply install it with `pip`::
11+
``certifi`` is available on PyPI. Simply install it with ``pip``::
1212

1313
$ pip install certifi
1414

@@ -24,5 +24,23 @@ To reference the installed CA Bundle, you can use the built-in function::
2424

2525
Enjoy!
2626

27+
1024-bit Root Certificates
28+
~~~~~~~~~~~~~~~~~~~~~~~~~~
29+
30+
Browsers and certificate authorities have concluded that 1024-bit keys are
31+
unacceptably weak for certificates, particularly root certificates. For this
32+
reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
33+
bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
34+
certifiate from the same CA. Because Mozilla removed these certificates from
35+
its bundle, ``certifi`` removed them as well.
36+
37+
Unfortunately, old versions of OpenSSL (less than 1.0.2) sometimes fail to
38+
validate certificate chains that use the strong roots. For this reason, if you
39+
fail to validate a certificate using the ``certifi.where()`` mechanism, you can
40+
intentionally re-add the 1024-bit roots back into your bundle by calling
41+
``certifi.old_where()`` instead. This is not recommended in production: if at
42+
all possible you should upgrade to a newer OpenSSL. However, if you have no
43+
other option, this may work for you.
44+
2745
.. _`Certifi`: http://certifi.io/en/latest/
2846
.. _`Requests`: http://docs.python-requests.org/en/latest/

0 commit comments

Comments
 (0)