[英]SSL3 Certificate Verify Failed when Connecting to JIRA API Using Python
我目前在尝试使用 Python2.7 和 JIRA REST API ( http://jira-python.readthedocs.org/en/latest/ ) 连接到 JIRA 时遇到错误。
当我执行以下操作时:
from jira.client import JIRA
options = {
'server': 'https://jira.companyname.com'
}
jira = JIRA(options)
我在控制台中收到以下错误消息:
requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
有什么我可能错过或做错的事情吗?
谢谢!
我遇到了类似的 SSL 证书验证错误,并查看了“JIRA”方法定义,可以关闭验证。
:param options: Specify the server and properties this client will use. Use a dict with any
of the following properties:
* server -- the server address and context path to use. Defaults to ``http://localhost:2990/jira``.
* rest_path -- the root REST path to use. Defaults to ``api``, where the JIRA REST resources live.
* rest_api_version -- the version of the REST resources under rest_path to use. Defaults to ``2``.
* verify -- Verify SSL certs. Defaults to ``True``.
* resilient -- If it should just retry recoverable errors. Defaults to `False`.
尝试这个 :
from jira.client import JIRA
options = {'server': 'https://jira.companyname.com','verify':False}
jira = JIRA(options)
我知道我在这个答案上迟到了,但希望这对未来的人有所帮助。
为什么不应该关闭验证
虽然关闭证书验证是最简单的“解决方案”,但这并不是一个明智的做法。 它本质上是说,“我不在乎我是否信任你,无论如何我都会把我所有的信息都发给你。” 这为中间人攻击打开了大门。
如果您要连接到您公司的 Jira 服务器并且它具有 TLS/SSL 证书,则您应该对此进行验证。 我会问你的 IT 部门那个证书在哪里。 它可能在贵公司的某个根证书中。
如果您在 Chrome 中连接到服务器(例如),如果它是通过 TLS/SSL 保护的,它应该在地址栏的左手角显示一个锁。
您可以Right-Click that lock -> Details -> View Certificate
在 Chrome 中Right-Click that lock -> Details -> View Certificate
。
好的,那我该怎么办?
直接向verify
选项提供必要的证书。
jira-python
使用 HTTP Requests
(见文档) 。 根据Requests 文档,您可以在verify
指定证书文件的路径。
因此,您可以在verify
为您的公司提供根证书,如下所示:
jira_options = {
'server': jira_server_name,
'verify': 'path/to/company/root/certificate',
}
如果您使用的是 Windows 机器(安全假设?),则该根证书存储在注册表中,获得它的最佳方法是使用wincertstore
。
在 Windows 系统上,请执行以下操作:-
获得 .cer 文件后,将其添加到 python 脚本中,如下所示:-
jira_options = {
'server': jira_server_name,
'verify': 'path_to_directory_containing_certificate_file/certificate.cer'
}
这应该可以在没有任何安全警告的情况下工作。
只需安装 python-certifi-win32 模块,这应该可以帮助您轻松解决这些错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.