抑制';SSL例程:SSL3_获取_服务器_证书:证书验证失败';python中的错误
在python 2.7.5中使用pyVmomi时遇到问题。我在尝试从SDK运行示例脚本时遇到SSL证书错误。我尝试了帖子上提到的所有解决方案,但没有一个对我有效 下面是完整的控制台输出抑制';SSL例程:SSL3_获取_服务器_证书:证书验证失败';python中的错误,python,python-2.7,suppress-warnings,urllib3,pyvmomi,Python,Python 2.7,Suppress Warnings,Urllib3,Pyvmomi,在python 2.7.5中使用pyVmomi时遇到问题。我在尝试从SDK运行示例脚本时遇到SSL证书错误。我尝试了帖子上提到的所有解决方案,但没有一个对我有效 下面是完整的控制台输出 /usr/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Ind
/usr/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:315: 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. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning. SNIMissingWarning /usr/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:120: 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. InsecurePlatformWarning
Traceback (most recent call last):
File "hello_world_vcenter.py", line 105, in <module>
main()
File "hello_world_vcenter.py", line 80, in main
port=int(args.port))
File "/usr/lib/python2.7/site-packages/pyVim/connect.py", line 663, in SmartConnect
sslContext)
File "/usr/lib/python2.7/site-packages/pyVim/connect.py", line 552, in __FindSupportedVersion
sslContext)
File "/usr/lib/python2.7/site-packages/pyVim/connect.py", line 472, in __GetServiceVersionDescription
tree = __GetElementTreeFromUrl(url, sslContext)
File "/usr/lib/python2.7/site-packages/pyVim/connect.py", line 440, in __GetElementTreeFromUrl
sock = requests.get(url)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 67, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 53, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 447, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
/usr/lib/python2.7/site packages/requests/packages/urllib3/util/ssl_u3;.py:315:SNIMissingWarning:HTTPS请求已发出,但TLS的SNI(主题名称指示)扩展在此平台上不可用。这可能会导致服务器提供不正确的TLS证书,从而导致验证失败。有关详细信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning. SNIMissingWarning/usr/lib/python2.7/site packages/requests/packages/urllib3/util/ssl_u3;.py:120:InsurePlatformWarning:真正的SSLContext对象不可用。这会阻止urllib3正确配置SSL,并可能导致某些SSL连接失败。有关详细信息,请参阅https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. 不安全平台警告
回溯(最近一次呼叫最后一次):
文件“hello\u world\u vcenter.py”,第105行,在
main()
文件“hello_world_vcenter.py”,第80行,主目录
端口=int(参数端口))
文件“/usr/lib/python2.7/site packages/pyVim/connect.py”,第663行,在SmartConnect中
sslContext)
文件“/usr/lib/python2.7/site packages/pyVim/connect.py”,第552行,在FindSupportedVersion中
sslContext)
文件“/usr/lib/python2.7/site packages/pyVim/connect.py”,第472行,在_GetServiceVersionDescription中
tree=\uuu GetElementTreeFromUrl(url,sslContext)
文件“/usr/lib/python2.7/site packages/pyVim/connect.py”,第440行,位于
sock=requests.get(url)
get中第67行的文件“/usr/lib/python2.7/site packages/requests/api.py”
返回请求('get',url,params=params,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/api.py”,请求中的第53行
return session.request(method=method,url=url,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/sessions.py”,第468行,在request中
resp=自我发送(准备,**发送)
文件“/usr/lib/python2.7/site packages/requests/sessions.py”,第576行,在send中
r=适配器.send(请求,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/adapters.py”,第447行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:[Errno 1]\u ssl.c:504:错误:14090086:ssl例程:SSL3\u GET\u SERVER\u证书:证书验证失败
看起来您正在使用自签名证书。通过SmartConnect
连接时,请使用自己的sslContext并禁用证书验证
from pyVim.connect import SmartConnect
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
context.verify_mode = ssl.CERT_NONE
si = SmartConnect(host=somehost.com, port=443, user=someone, pwd=secret, sslContext=context)
。。。或者使用已签名的ssl证书
这里有一些类似的问题(例如)。看起来您使用的是自签名证书。通过
SmartConnect
连接时,请使用自己的sslContext并禁用证书验证
from pyVim.connect import SmartConnect
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
context.verify_mode = ssl.CERT_NONE
si = SmartConnect(host=somehost.com, port=443, user=someone, pwd=secret, sslContext=context)
。。。或者使用已签名的ssl证书
这里有一些类似的问题(例如)。尝试使用python 2.7.9或2.7.10。尝试使用python 2.7.9或2.7.10。