首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向HTTPPoison/hackney添加可信证书?

如何向HTTPPoison/hackney添加可信证书?
EN

Stack Overflow用户
提问于 2016-10-07 21:58:16
回答 2查看 3.6K关注 0票数 9

当我尝试的时候:

代码语言:javascript
复制
HTTPoison.get! "https://facebook.com"

我得到了:

代码语言:javascript
复制
** (HTTPoison.Error) {:tls_alert, 'unknown ca'}
[error] SSL: :certify: ssl_handshake.erl:1606:Fatal error: unknown ca

    (httpoison) lib/httpoison.ex:66: HTTPoison.request!/5

这在某种程度上是意料之中的,因为在我的公司里,我需要信任防火墙的证书才能出去。

我在系统范围内信任证书(.cer文件),这就是为什么wget在访问https URL时不会给我https错误。但是hackney/HTTPoison似乎忽略了这个配置。

如何让HTTPoison/hackney将证书识别为可信证书?

EN

回答 2

Stack Overflow用户

发布于 2016-10-12 01:52:36

我最近也遇到了这个问题。我的工作是按照this ticket中的开发人员的建议,将证书文件的位置直接传递给hackney

代码语言:javascript
复制
opts = [{:ssl_options, [{:cacertfile, "/<path to my cert>/MyCertificates.pem"}]}]
HTTPoison.post(login, headers, hackney: opts)

或者,您可以在不检查证书的情况下执行SSL连接(有关请求选项here的更多信息):

代码语言:javascript
复制
HTTPoison.post(login, headers, hackney: [:insecure])
票数 5
EN

Stack Overflow用户

发布于 2016-10-12 16:22:13

为证书文件路径传递的toHTTPoison选项如下所示:

代码语言:javascript
复制
   defp add_certs do
          [                                                                                                                                        
            hackney: [ # :hackney options                                                                                                          
             ssl_options: [ # :ssl options                                                                                                         
               cacertfile: # CA certificate used to validate server cert; path(), "string" is ok                  
               certfile:  # client certificate, signed by CA; path(), "string" is ok                                 
               keyfile:  # private key for client.crt; path(). "string" is ok                                         
               password:  # password for keyfile; string(), "string" not ok, use 'char list'                                  
             ]                                                                                                                                     
           ]                                                                                                     
          ]
    end
    HTTPoison.post(url, request_xml, headers, add_certs)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39919071

复制
相关文章

相似问题

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