首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails - Curb SSLCA错误?- Curl::Err::SSLCACertificateError

Rails - Curb SSLCA错误?- Curl::Err::SSLCACertificateError
EN

Stack Overflow用户
提问于 2012-11-30 06:30:46
回答 2查看 3K关注 0票数 1

当我更新我的Rails gem时,我发现了这个错误(仅在生产环境中,在开发环境中运行良好):

代码语言:javascript
复制
Curl::Err::SSLCACertificateError

这似乎是一个SSL证书颁发机构的错误,但为什么只在生产中不工作?我能做些什么来解决这个问题呢?

我的路缘gem是带有rails 3.2.8的v.0.8.3 (市长的更新是rake,现在是v.10.0.2,但我不知道这是否会影响路缘gem的良好工作)。

仅供参考,以下是引发错误的代码:

代码语言:javascript
复制
    loginData = { :login => "myuser", :password => "mypass" }
    loginJson = ActiveSupport::JSON.encode(loginData)

    req = Curl::Easy.http_post("https://mysite.com", loginJson
    ) do |curl|
        curl.headers['Content-type'] = 'application/json'
    end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-11 01:38:48

听起来您在服务器上使用的是自签名SSL证书,这很好。我对内部服务也做同样的事情。您只需要让您的客户端也知道自定义SSL证书,这样它就知道它是可信的。

下面这样的代码应该能起到作用:

代码语言:javascript
复制
req = Curl::Easy.http_post("https://mysite.com", loginJson) do |curl|
  curl.headers['Content-type'] = 'application/json'
  curl.cacert = "/path/to/ca.crt"
  curl.cert = "/path/to/cert.pem"
end

当然,您可能希望将这些字符串常量提取到一个配置文件中。

票数 3
EN

Stack Overflow用户

发布于 2012-11-30 07:21:16

我找到了另一种解决方案,当我请求"curl“时,我添加了这个额外的得体:

代码语言:javascript
复制
 curl.ssl_verify_peer = false

我不知道在安全性方面是否是最好的解决方案,但就目前而言,它是有效的…

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

https://stackoverflow.com/questions/13635960

复制
相关文章

相似问题

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