【问题标题】:SSL server certificate errorSSL 服务器证书错误
【发布时间】:2014-04-10 09:58:19
【问题描述】:

我正在尝试使用 api 获取数据但收到此错误:

`connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

这就是我的做法:

require 'open-uri'
require 'json'

result = JSON.parse(open("https://xxx.xx.xx.:xxxx/xxx/xxx", :http_basic_authentication=>['username', 'password']).read)
puts "#{result}"

如何摆脱这个?

【问题讨论】:

    标签: ruby ssl-certificate basic-authentication


    【解决方案1】:

    也许你必须强制关闭 ssl 证书验证,例如:

    require 'open-uri'
    require 'json'
    require 'openssl'
    
    result = JSON.parse(open("your URL in HTTPS", {:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE, :http_basic_authentication=>['username', 'password']}).read)
    
    puts "#{result}"
    

    【讨论】:

    • 它说:``
      ': uninitialized constant OpenSSL (NameError)` error
    • 需要 'openssl" 抱歉
    • VERIFY_NONE 是您在这里可以做的最糟糕的事情。它完全违背了 SSL 的想法。相反,您应该确保您实际上能够正确验证服务器证书。
    • 它打败了 SSL 的一个想法,而不是 cypering,你可以放松身份验证,但这取决于你想要做什么,如果你需要明确使用 SSL 验证,你可以看看:stackoverflow.com/questions/9199660/…
    • 这是一种“保持简单愚蠢”的解决方案,而不是“重型全金属外壳”解决方案。另一次,它取决于许多参数、可信网络开放、安全需求和目标等......
    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 2017-08-06
    • 1970-01-01
    • 2021-07-11
    • 2012-11-14
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多