自己署名証明書を使用したテスト用のサーバーセットアップがあり、それに向けてテストできるようにしたいと考えています。
Python 3バージョンのurlopen
?でSSL検証を無視する方法
これに関して私が見つけたすべての情報は、_urllib2
_またはPython 2全般に関するものです。
urllib
in python 3は_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
だから、これはPython 2で次のようにできることを知っている。しかしPython 3 urlopen
にはコンテキストパラメータが欠けている。
_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のソリューションがありました。
Python 3.0から3.3にはコンテキストパラメータがありません。Python 3.4で追加されました。したがって、Pythonバージョンを 3.5 コンテキストを使用します。