[Python-Dev] Validating SSL By Default (aka Including a Cert Bundle in CPython)

Paul Moore p.f.moore at gmail.com
Mon Jun 3 23:31:40 CEST 2013

On 3 June 2013 21:05, Chris Angelico <rosuav at gmail.com> wrote:

> +1 for having the default be safe, but this will have to be very
> loudly announced ("when migrating from 3.3 to 3.4, TLS connections
> will cease to work if blah blah").

+1 on the default being safe, certainly. But with the proviso that the same
code should work in 3.3 and 3.4, with no user impact (other than that the
connection is safer, but that's not user-visible unless there's an attack

In other words, that "will cease to work" clause should not exist - but see

> Some legit sites with proper
> certificates still manage to muck something up administratively
> (developer.quicksales.com.au has a cert from RapidSSL but doesn't
> bundle the intermediates, and I've told their devs about it, but all I
> can do is disable cert checking). This will break code in ways that
> will surprise people greatly. But I'd still rather the default be
> True.

I'm happy if the "will cease to work" clause only says "some sites with
broken security configurations may stop working" with a clear explanation
that it is *their* fault, not Python's. I'd also expect that the same sites
would fail in browsers - if not, we should also be able to make them work
(or face cries of "well, Internet Explorer/Firefox doesn't have a problem
with my site, why does Python?").

Also, we should consider the issue for application users. Suppose I'm using
a Python application that downloads something from the web. I upgrade to
3.4, and the app stops working because of a "will cease to work" case. As
an end user, how can I get the app working again? Having to patch the
sources isn't an option, and reverting to 3.3 provokes the reaction "Python
broke my app".

Summary - I'm +1 as long as either the "will cease to work" list is empty,
or we have a *very* good story for (legitimate) sites which do cease to

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130603/0435465e/attachment.html>

More information about the Python-Dev mailing list