PIP3 在 RHEL 8 上安装失败,SSL 身份验证类型错误

PIP3 在 RHEL 8 上安装失败,SSL 身份验证类型错误

我正在尝试在新创建的 RHEL 8 服务器上使用 PIP 安装软件包,该服务器启用了 FIPS 并运行 openssl 1.1.1k,但出现有关 dh 值错误的错误。

pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org jupyterlab_widgets ipyleaflet
Collecting jupyterlab_widgets
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)': /simple/jupyterlab-widgets/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)': /simple/jupyterlab-widgets/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)': /simple/jupyterlab-widgets/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)': /simple/jupyterlab-widgets/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)': /simple/jupyterlab-widgets/
  Could not fetch URL https://pypi.python.org/simple/jupyterlab-widgets/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/jupyterlab-widgets/ (Caused by SSLError(SSLError(1, '[SSL: BAD_AUTHENTICATION_TYPE] bad dh value (_ssl.c:897)'),)) - skipping

有趣的是,如果我将 openssl 版本从 1.1.1k 降级到 1.1.1c,那么它就可以正常工作。

RedHat 列出了一个已知问题:

FIPS 模式下的 OpenSSL 仅接受特定的 DH 参数

在 FIPS 模式下,使用 OpenSSL 的传输安全层 (TLS) 客户端会返回错误的 dh 值错误并中止与使用手动生成参数的服务器的 TLS 连接。这是因为当 OpenSSL 配置为符合 FIPS 140-2 时,它仅适用于符合 NIST SP 800-56A rev3 附录 D 的 DH 参数(RFC 3526 中定义的组 14、15、16、17 和 18 以及 RFC 7919 中定义的组)。此外,使用 OpenSSL 的服务器会忽略所有其他参数,而是选择已知大小相似的参数。要解决此问题,请仅使用符合要求的组。

有没有办法指定 pip3 使用的密码组?

相关内容