当前位置: 首页 > 知识库问答 >
问题:

Python无法通过连接Jira API

萧晓博
2023-03-14

我试图连接jira的API通过python(3.6)和我一直得到错误消息:

警告: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':

这是我的代码:

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时,一切都很好。

共有2个答案

郗浩
2023-03-14

只需安装"python-valfi-win32",SSL错误就被清除了。我没有提供任何证书或任何东西。

罗浩然
2023-03-14

您可以为验证选项提供必要的证书。

jirapython对HTTP(文档)使用请求。

根据请求留档,您可以在验证中指定证书文件的路径。因此,您可以在验证中提供根证书,如下所示:

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证书验证:

如果将验证设置为目录的路径,则必须使用OpenSSL提供的c_rehash实用程序处理该目录。

客户方证明:

本地证书的私钥必须未加密。目前,请求不支持使用加密密钥。

还可以选择设置“验证”:false-不建议这样做,因为关闭证书验证会使您容易受到中间人攻击。

 类似资料:
  • 问题内容: 我有一个使用socket.IO的node.js应用程序。它可以在http上正常工作,但是当尝试通过https连接到套接字时,没有任何反应。 这是代码的一部分: 和功能: 客户端连接如下: 正如我说的,在http上一切正常,但是在https上连接会给我“连接被中断”。我究竟做错了什么? 问题答案: 您不能像服务器那样初始化服务器。您必须启动一个单独的https服务器,然后将socket.

  • 据我所知,我的服务器运行正常,因为我(仅在我自己的计算机上)可以连接到服务器。 当我试图让任何其他计算机连接到它,它从来没有连接,我感到茫然和需要想法。 我使用谷歌chrome连接,就像我之前说的,它工作很好,但只在我的电脑上

  • 问题内容: 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以通过使用本地计算机上的curl来访问Kibana和Elastic search 我得到以下回应 var hashRoute =’/ app / kibana’; var defaultRoute =’/ app / kibana’; var hash = window.location.hash;

  • 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以使用 我得到以下回应 var hashRoute='/app/kibana'; var defaultRoute='/app/kibana'; var hash=window.location.hash; if(hash.length){window.location=hashRoute hash;}其他{wi

  • 问题内容: 我最近安装了Elasticsearch,并且在开始的几天里一切正常,但是今天以某种方式停止了工作 当我启动该服务时,它声称很好… 但后来我明白了 查看elasticsearch日志: 看起来有关于Java VM的警告;那可能是问题吗?我还应该尝试/看看什么? 问题答案: 1) 使用linux中的命令 检查端口9200的状态 。 就我而言,以下是启动时的结果。 对我不是服务,否则找到正在

  • 这几天来,我无法在本地运行mac os ML的机器上连接到我的postgreSQL数据库。 我机器的nmap显示postgres在5432上运行,我可以通过pgadmin和psql进行本地连接。 收听地址设置为* 当我尝试连接JDBC时,我会遇到以下异常 组织。postgresql。util。PSQLException:连接被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。