自己証明書付きのテスト用のサーバーセットアップがあり、それをテストできるようにしたいと考えています。Python 3 urllibはSSL証明書の検証を無視します
urlopen
のPython 3バージョンでSSL検証を無視しますか?
私が見つけたすべての情報はurllib2
または一般的なPython 2に関するものです。
urllib
はurllib2
から変更された:
パイソン2、urllib2の:urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])
https://docs.python.org/2/library/urllib2.html#urllib2.urlopen
パイソン3:urllib.request.urlopen(url[, data][, timeout])
https://docs.python.org/3.0/library/urllib.request.html?highlight=urllib#urllib.request.urlopen
これはPython 2で次のようにして行うことができることを知っています。しかし、Python 3 urlopen
にはcontextパラメータがありません。
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)
はい、これは悪い考えです。これは、プライベートサーバー上でテストするためのものです。
これはPython 3のドキュメントやその他の質問でどのように行われるはずです。 Python 3に明示的に言及しているものでも、urllib2/Python 2の解決策はありました。