Skip to content

Instantly share code, notes, and snippets.

@quasarj
Last active February 28, 2018 18:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save quasarj/079c94f0698a8b0c58ee to your computer and use it in GitHub Desktop.
Save quasarj/079c94f0698a8b0c58ee to your computer and use it in GitHub Desktop.
Patch to allow SUDS to work with invalid (or self-signed) SSL certs, on python 2.7.9+
--- /usr/lib/python2.7/site-packages/suds/transport/http.py 2015-06-09 17:40:15.000000000 -0500
+++ http.py 2015-06-09 17:42:05.953929465 -0500
@@ -19,6 +19,7 @@
"""
import urllib2 as u2
+import ssl
import base64
import socket
from suds.transport import *
@@ -135,6 +136,14 @@
@rtype: [Handler,...]
"""
handlers = []
+
+ # build a special unverified HTTPSHandler
+ unverified_context = ssl.create_default_context()
+ unverified_context.check_hostname = False
+ unverified_context.verify_mode = ssl.CERT_NONE
+ unverified_handler = u2.HTTPSHandler(context=unverified_context)
+
+ handlers.append(unverified_handler)
handlers.append(u2.ProxyHandler(self.proxy))
return handlers
@quasarj
Copy link
Author

quasarj commented Jun 9, 2015

In Python 2.7.9, urllib2's default behavior was changed to verify certificates when using HTTPS. Prior to this version, the default behavior was to not verify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment