This is because Python is starting to apply default certificate verification for stdlib http clients .
An excellent explanation of the rationale for the changes can be found in this article on Redhat . There is also information on how to monitor and troubleshoot this new situation.
Both of the previous links explain how to avoid certificate verification in separate connections (which is not a solution for feedparser users):
import ssl
Currently, feedparser users can avoid certificate verification only with monkeypatching , which is highly undesirable as it affects the entire application.
The code for changing the behavior of the application as a whole will be as follows (the code is taken from PEP-476):
import ssl try: _create_unverified_https_context = ssl._create_unverified_context except AttributeError: # Legacy Python that does not verify HTTPS certificates by default pass else: # Handle target environment that does not support HTTPS verification ssl._create_default_https_context = _create_unverified_https_context
There is a problem about this on the feedparser tracker : How to fix SSL: CERTIFICATE_VERIFY_FAILED? .
source share