当我试图使用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
有没有什么我可能漏掉了或者做错了?
谢谢!
我知道我的回答迟了,但希望这能帮助一些人。
为什么不应关闭验证
虽然关闭证书验证是最简单的“解决方案”,但是 不明智的做法。它本质上说, “不管我信不信你,反正我会把所有的信息都发给你的。” 这会让你成为中间人。
如果你连接到你公司的Jira服务器并且它有一个 TLS/SSL证书,您应该对此进行验证。 我想问问你的IT部门证书在哪里。可能是 在你公司的根证书中。
如果你用Chrome连接到服务器(例如) 如果它是安全的,它应该在地址栏的左角显示一个锁 通过TLS/SSL。
你可以在Chrome中
Right-Click that lock -> Details -> View Certificate
。好吧,那我该怎么办?
直接向
verify
选项提供必要的证书。jira-python
使用Requests
作为HTTP内容(See documentation)。 根据Requests documentation 可以在verify
中指定证书文件的路径。因此,您可以在
verify
中为您的公司提供根证书,如下所示:如果你使用的是Windows机器(一个安全的假设?),那个根 证书存储在注册表中,是获取证书的最佳方式 正在使用^{} 。
我遇到了一个类似的SSL证书验证错误,通过查看“JIRA”方法的定义,它有可能关闭验证。
试试这个:
在Windows系统上,请执行以下操作:
获取.cer文件后,将其添加到python脚本中,如下所示:
这应该可以在没有任何安全警告的情况下工作。
相关问题 更多 >
编程相关推荐