Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python可以';t通过以下方式连接Jira API_Python 3.x_Jira Rest Api - Fatal编程技术网

Python 3.x Python可以';t通过以下方式连接Jira API

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

我正试图通过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进程\服务器\证书',),,),,)

这是我的代码:

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 via
F12
也可以工作,但右键单击锁只快一两步;)Thx的评论-让我把你的方式添加到我的答案中;)