J'ai une configuration de serveur pour les tests, avec un certificat auto-signé, et je veux pouvoir tester vers cela.
Comment ignorer la vérification SSL dans la version Python 3 de urlopen
?
Toutes les informations que j'ai trouvées à ce sujet concernent urllib2
Ou Python 2 en général.
urllib
in python 3 a changé de urllib2
:
Python 2, urllib2 : urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])
https://docs.python.org/2/library/urllib2.html#urllib2.urlopen
Python 3 : urllib.request.urlopen(url[, data][, timeout])
https://docs.python.org/3.0/library/urllib.request. html? highlight = urllib # urllib.request.urlopen
Je sais donc que cela peut être fait en Python 2 de la manière suivante. Cependant Python 3 urlopen
n'a pas le paramètre de contexte).
import urllib2
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
urllib2.urlopen("https://your-test-server.local", context=ctx)
Et oui, je sais que c'est une mauvaise idée. Ceci est uniquement destiné aux tests sur un serveur privé.
Je n'ai pas pu trouver comment cela est censé être fait dans la documentation Python 3, ou dans toute autre question. Même ceux mentionnant explicitement Python 3, encore avait une solution pour urllib2/Python 2.
Python 3.0 à 3.3 n'a pas de paramètre de contexte, il a été ajouté dans Python 3.4. Ainsi, vous pouvez mettre à jour votre Python vers .5 pour utiliser le contexte.