python ssl相关问题说明

在执行Python脚本时遇到SSL相关警告和错误,包括SNIMissingWarning和InsecurePlatformWarning,导致HTTPS请求失败。解决方案包括降级requests包到特定版本(如2.13.0)以及卸载并重新安装certifi证书包到旧版(如2015.04.28),以解决CentOS 6.8上的依赖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



上了CPU实时监控python脚本后,执行时出现send信息失败
[root@hadoop153 home]# python tt.py
hostName:hadoop153, time:09-06 10:32:01 value:6.277
/usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ssl_.py:334: 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/advanced-usage.html#ssl-warnings
  SNIMissingWarning
/usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ssl_.py:132: 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/advanced-usage.html#ssl-warnings
  InsecurePlatformWarning
Traceback (most recent call last):
  File "tt.py", line 53, in <module>
    monitorLog(logFile)
  File "tt.py", line 49, in monitorLog
    send_msg(content)
  File "tt.py", line 29, in send_msg
    url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+get_token()
  File "tt.py", line 23, in get_token
    req = requests.post(url, params=values)
  File "/usr/lib/python2.6/site-packages/requests/api.py", line 110, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/lib/python2.6/site-packages/requests/api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:492: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


warning异常解决方法:安装旧版本requests包,根据脚本执行正常服务器hadoop152的版本为2.13.0
pip list
pip uninstall requests
pip install requests==2.13


SSLError异常解决方法:发现发送异常的服务器上多了一个certifi证明包,把它卸载掉即可,具体原因未知

在centos 6.8上,卸载掉certifi证明包会有其他库包缺失module
解决办法是先卸载掉,再安装旧版本
[root@hadoop100 python]# pip uninstall -y certifi
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
Uninstalling certifi-2017.7.27.1:
  Successfully uninstalled certifi-2017.7.27.1
[root@hadoop100 python]# pip install certifi==2015.04.28
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 certifi==2015.04.28
/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
  Downloading certifi-2015.04.28-py2.py3-none-any.whl (373kB)
    100% |████████████████████████████████| 378kB 779kB/s
Installing collected packages: certifi
Successfully installed certifi-2015.4.28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值