web-dev-qa-db-ja.com

easy_installとpipがSSL警告で失敗する

一部のRHEL6サーバーの世話をしていて、内部のPyPiサーバー(Nexus 3によってプロキシされている)を使用するようにセットアップしようとしています。

問題は、内部のPyPiサーバーが同じNginxサーバー上のいくつかのSSL VHostの1つであり、Python 2.6はSNI互換ではないため、間違ったVhostからダウンロードしようとするため、easy_installが失敗することです。 URLとpipがSNIMissingWarningとInsecurePlatformWarningで失敗します。

https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings に関するアドバイスを確認しましたが、これは独自のスクリプトの回避策のようです。 Python自体の問題には対処していません。とにかくurllib3と関連パッケージをインストールしましたが、問題は解決しません。

[[email protected] ~]# pip install --index https://nexus3.internal/repository/pypi-proxy/simple twine
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting twine
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject 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/security.html#snimissingwarning.
  SNIMissingWarning
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Could not fetch URL https://nexus3.internal/repository/pypi-proxy/simple/twine/: There was a problem confirming the ssl certificate: [Errno 1] _ssl.c:490: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed - skipping
  Could not find a version that satisfies the requirement twine (from versions: )
No matching distribution found for twine
2
RCross

エラーメッセージで提供されているリンクを確認してください;)

https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning

SNIMissingWarning

これは、Python 2.7.9より古い2つのバージョンで発生します。これらの古いバージョンにはSNIサポートがありません。これにより、クライアントが無効であると考える証明書をサーバーが提示する可能性があります。 pyOpenSSL この警告を解決するためのガイド。


PyOpenSSLリンクは次を返します:

Python 2での証明書の検証

Python 2の古いバージョンは、SNIサポートが欠如しており、セキュリティ更新に遅れをとることができるsslモジュールで構築されています。これらの理由により、pyOpenSSLを使用することをお勧めします。

安全なエクストラを使用してurllib3をインストールすると、Python 2での証明書検証に必要なすべてのパッケージがインストールされます。

pip install urllib3[secure]

パッケージを手動でインストールする場合は、pyOpenSSLcryptographyidna、およびcertifiが必要です。

2
Taz8du29