Python 3.x Python可以';t通过以下方式连接Jira API
我正试图通过python(3.6)连接jira的API,我不断收到错误消息: 警告:root:HTTPSConnectionPool(host='jira',port=443):url:/secure/rest/api/2/serverInfo/rest/api/2/serverInfo超过了最大重试次数(由SSLError引起(SSLError(“错误握手:错误”(('SSL例程','tls\u进程\服务器\证书',),,),,)当你得到https://jira/secure/rest/api/2/serverInfo/rest/api/2/serverInfo [{'params':无,'headers':{'User-Agent':'python requests/2.20.1','Accept Encoding':'gzip,deflate','Accept':'application/json,;q=0.9','Connection':'keep alive','Cache Control':'no Cache','Content Type':'application/json','X-Atlassian-Token:'no check'}}] 警告:root:Get-ConnectionError[HTTPSConnectionPool(host='jira',port=443):url超过最大重试次数:/secure/rest/api/2/serverInfo/rest/api/2/serverInfo(由SSLError引起(SSLError(“错误握手:错误([('SSL例程','tls\u进程\服务器\证书','),),)]errno:一点也没有https://jira/secure/rest/api/2/serverInfo/rest/api/2/serverInfo {'response':无,'request':}{'response':无,'request':} 警告:root:从GET获取可恢复错误https://jira/secure/rest/api/2/serverInfo/rest/api/2/serverInfo,将在7.466325591185807中重试[1/3]。Err:HTTPSConnectionPool(host='jira',port=443):url:/secure/rest/api/2/serverInfo/rest/api/2/serverInfo超过了最大重试次数(由SSLError引起(SSLError(“错误握手:错误([('SSL例程','tls\u进程\服务器\证书',),,),,) 这是我的代码:Python 3.x Python可以';t通过以下方式连接Jira API,python-3.x,jira-rest-api,Python 3.x,Jira Rest Api,我正试图通过python(3.6)连接jira的API,我不断收到错误消息: 警告:root:HTTPSConnectionPool(host='jira',port=443):url:/secure/rest/api/2/serverInfo/rest/api/2/serverInfo超过了最大重试次数(由SSLError引起(SSLError(“错误握手:错误”(('SSL例程','tls\u进程\服务器\证书',),,),,)当你得到https://jira/secure/rest/api
un='myusername'
pwd='mypassword'
server='https://jira/xxxx'
jira = jira = JIRA(basic_auth=(un, pwd), options={'server': server})
issue = jira.issue('some issue name')
print(issue.fields.project.key)
print(issue.fields.issuetype.name)
对同一服务器使用curl时,一切正常。您可以向
验证选项提供必要的证书
jirapython
对HTTP使用请求
据
您可以在verify
中指定证书文件的路径。
因此,您可以在verify
中提供根证书,如下所示:
jira_options = {
'server': jira_server_name,
'verify': 'path/to/root/certificate',
}
因此,在您的情况下,只需更改为:
jira = jira = JIRA(basic_auth=(un, pwd), options={'server': server,'verify': 'path/to/root/certificate',})
例如,在Chrome中,您可以按照本节所述显示证书
编辑:
连接到Chrome中的服务器,单击地址栏左角显示的锁,右键单击该锁(见下图),然后单击“详细信息”,然后单击“查看证书”。然后将此证书保存到文件中,并在验证中引用它
另一种方法,正如@Snow在下面的评论中提到的,是通过F12
打开开发工具,然后导航到安全选项卡
从文档中:
SSL证书验证:
如果将verify设置为目录的路径,则必须使用OpenSSL提供的c_rehash实用程序处理该目录
客户端证书:
本地证书的私钥必须未加密。目前,请求不支持使用加密密钥
还有设置“验证”的选项:false,这是不推荐的,因为关闭证书验证会使您容易受到攻击。只需安装“python-certifi-win32”,SSL错误就会为我清除。我没有提供任何证书或任何东西。错误的SSL握手告诉您SSL证书的验证失败。.感谢您的提问,我注意到,但我正在使用CURL进行验证,没关系,只是通过Python使用JIRA模块,它给出了错误。。。有什么想法吗?你可以像我下面的回答中所说的那样为验证选项提供必要的证书。有没有成功,或者你有关于该主题的其他问题?仍然是相同的错误消息,我将jira证书保存到文件中并添加了你的行,这真的很奇怪,因为我们在使用“请求”时我可以连接。我找不到你提到的这个锁钮。它到底在哪里?@Snow我在我的答案中添加了一个图像,应该可以澄清地址栏中所述锁的位置。谢谢,我通过开发者工具-->安全选项卡获得了它。虽然你的看起来更快。@Snow-Yeah-dev-tools viaF12
也可以工作,但右键单击锁只快一两步;)Thx的评论-让我把你的方式添加到我的答案中;)