[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
Python を使っていたら次のように怒られた。
SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
割とよくあるエラーらしく。リンク先を日本語にしてみる。
SSL 証明書を検証する際、その検証方法に応じていくつかの警告を urllib3 は発します。各渓谷はそれぞれ異なる状況によって発され、それぞれの手段で解決が可能です。
HTTPS で接続する URL にリクエストを送る際に証明書の検証を行わない設定になっていると発生します。Certificate verification を参考にこの問題を解決してください。
もはや古いものとなった SSL モジュールを用いている Python2 を使っている場合に発生します。そういった古い SSL モジュールは失敗すべき安全ではないリクエストの送信を成功させたり、成功すべき安全なリクエストの送信を失敗させたりします。Certificate verification in Python 2 を参考にこの問題を解決してください。
2.7.9 未満の Python2 を利用している場合に発生します。古い Python2 は SNI をサポートしていません。そのため、クライアントはサーバから共有された有効な証明書を無効なものと判断することがあります。Certificate verification in Python 2 を参考にこの問題を解決してください。
検証されない HTTPS リクエストを送ることは まったくもって お勧めできません。しかしながら、そのリスクを理解したうえでこれらの警告を無視するには、disable_warnings()
が利用できます。
>>> import urllib3 >>> urllib3.disable_warnings()
抑制した警告は標準の logging module で取得することが可能です。
>>> logging.captureWarnings(True)
また、環境変数をPYTHONWARNINGS
を用いたり、-W フラグ を用いることでも警告の抑制が可能です。
ただいまコメントを受けつけておりません。