Kendi kendine imzalı bir sertifikayla test etmek için bir sunucu kurulumum var ve test etmek istiyorum.Python 3 urllib SSL sertifikası doğrulamasını reddediyor
urlopen
'un Python 3 sürümünde SSL doğrulamasını nasıl yok sayarsınız?
Bu konuyla ilgili bulduğum tüm bilgiler, urllib2
veya Python 2 ile ilgilidir. piton 3
urllib
urllib2
değişti:
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
Bu yüzden Python 2'de aşağıdaki şekilde yapılabileceğini biliyorum. Ancak Python 3 urlopen
, içerik parametresinde eksik.
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)
Ve evet bunun kötü bir fikir olduğunu biliyorum. Bu sadece özel bir sunucu üzerinde test edilmek içindir.
Bunun Python 3 belgelerinde veya başka bir soruda nasıl yapılması gerektiğini bulamadım. Python 3'ü açıkça anlatanlar bile, yine de urllib2/Python 2 için bir çözüme sahipti.