当前位置: 首页 > 面试题库 >

使用请求包时发生SSL InsecurePlatform错误

太叔繁
2023-03-14
问题内容

我正在使用Python 2.7.3和请求。我通过pip安装了请求。我相信这是最新版本。我正在Debian Wheezy上运行。

过去,我已经使用Requests多次,但从未遇到过此问题,但是似乎在通过https发出请求时Requests会出现InsecurePlatform异常。

错误提到urllib3,但我没有安装。我确实安装了它以检查它是否解决了错误,但没有成功。

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3
/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not
available. This prevents urllib3 from configuring SSL appropriately and 
may cause certain SSL connections to fail. For more information, see 
https://urllib3.readthedocs.org/en/latest  
/security.html#insecureplatformwarning.

关于我为什么要得到这个的任何想法?我已经按照错误消息中的说明检查了文档,但是文档说要导入urllib3并禁用警告或提供证书。


问题答案:

使用有些隐藏的 安全 功能:

pip install requests[security] 要么 pip install pyOpenSSL ndg-httpsclient pyasn1

这两个命令都安装以下额外的软件包:

  • pyOpenSSL
  • 密码学
  • 艾德娜

请注意,这对于python-2.7.9
+
不是必需的。

如果pip install失败并出现错误,请检查您是否具有所需的开发包libffilibssl
使用发行版的包管理器将其*python安装在系统中: *

  • Debian的 / Ubuntu的 -python-dev libffi-dev libssl-dev包。

  • Fedora的 -openssl-devel python-devel libffi-devel包。

上面的发行版列表不完整。

解决方法 (请参阅@TomDotTom的原始答案)

万一您无法安装某些必需的开发包,还有一个选项可以禁用该警告:

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

如果您pip自己受到InsecurePlatformWarningPyPI的影响并且无法从PyPI安装任何东西,则可以通过此逐步指南进行修复,以手动部署其他python软件包。



 类似资料:
  • 尝试将数据发布到api时出错。下面是代码片段。期待早日得到帮助!谢谢 7组织。springframework。网状物客户ResourceAccessException:“jirasdtest.myoutotec.com/rest/api/2/issue/SD-1043/comment”的POST请求出现I/O错误:连接超时;嵌套异常为java。网SocketTimeoutException:连接在

  • 我正在尝试使用ajax发送post请求,但始终出现以下错误: XMLHttpRequest无法加载http://192.168.1.123:8080。对预检请求的响应无法通过权限改造检查:请求的资源上不存在“访问控制允许源”标头。因此不允许访问源“http://localhost:8080”。 这是我的代码

  • 我想向soap请求发送XML,我使用python请求,如下所示: 当我发送请求时,我会发出以下请求: 我在这样的请求中进行: 我给出了一些错误,比如你不能发送这样的请求。 我意识到我必须发送带有此请求的证书才能获得成功响应 我有<代码>。cer和。crt文件发送,但我这样发送: 并得到以下错误: 更新: 我在PK中使用openssl x509-inform der。cer-输出PK。pem并尝试以

  • 我无法连接到Azure cosmos迁移工具,得到一个错误,比如:发送请求时发生了一个错误。

  • 问题内容: 我正在使用jQuery ajax将请求发送到某些API。由于有CORS政策,我在浏览器的控制台上收到了CORS错误 这是通过代码 错误 所请求的资源上存在“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://www.mywebsite.com ”。 我尝试通过安装chrome扩展程序以启用允许跨源请求来解决此问题。此扩展以某种方式解决了