首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ssl_ca_file时RestClient::Resource的正确语法

使用ssl_ca_file时RestClient::Resource的正确语法
EN

Stack Overflow用户
提问于 2016-07-27 21:30:15
回答 1查看 414关注 0票数 0

拔出我的头发,试图使JIRA票据的REST更新正常工作,特别是在指定要在事务中使用的证书文件时。

我正在使用Ruby2.2.0中的RestClient gem (2.0.0)。

根据文档(这里这里),我需要创建一个新的资源,然后在它上调用一个方法,而不是更短、更直接的语法。

使用这种构造样式向JIRA发送请求可以很好地工作:

代码语言:javascript
运行
复制
endpoint = "#{opts['jiraHost']}/rest/api/2/issue"
request = RestClient::Resource.new(endpoint,
   ssl_ca_file: certfile, 
   headers: {
     Authorization: 'Basic b3B....', 
     content_type: :json, 
     accept: :json}
)
response = request.post(ticketParams.to_json)

我得到了一个成功的回应并创建了一张罚单。

使用PUT谓词的稍微修改的版本在400坏请求中失败。

代码语言:javascript
运行
复制
endpoint = "#{opts['jiraHost']}/rest/api/2/issue/#{ticket[:issueKey]}"
request = RestClient::Resource.new(endpoint, 
     ssl_ca_file: certfile, 
     headers: {
       Authorization: 'Basic b3B....', 
       content_type: :json, 
       accept: :json}
)
response = request.put(ticketParams.to_json)

令人恼火的部分是,当对非SSL安装执行此操作并忽略SSL参数时,更新工作正常。我可以通过邮递员打同样的更新电话,它可以正常工作。

在文档中给出的示例中,有使用GET (而不是其他谓词)指定证书文件的示例,并且只有一个Resource.post(有效负载)示例。我怀疑我把ssl_ca_file放在了错误的位置,但我尝试了所有我能想到的变体,但都没有用。

(有人会问我为什么不能依赖系统的证书存储。我做不到;我已经尝试了所有的方法,只有指定cert文件才允许我连接。)

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-29 19:50:57

我的错..。答案在于error.response.body,它包含JIRA特定的错误消息。根本不是SSL选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38623504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档