【问题标题】:Faraday::SSLError and "certificate verify failed"Faraday::SSLError 和“证书验证失败”
【发布时间】:2017-03-16 09:48:26
【问题描述】:

我正在使用 Windows 10。我想创建将使用 OutlookAPI 的应用程序。所以我在Write a Ruby on Rails app to get Outlook mail 关注入门教程。

我遇到过SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed这个问题,如下图;

当我在认证阶段成功后尝试getToken 时出现上述问题。

如果有任何建议,我将不胜感激。

【问题讨论】:

  • 两个请求.. (1) 请说明错误。图片上的文字太小,无法阅读。此外,搜索引擎无法为未来的访问者检索文本。 (2) 请贴出你用来连接服务器的URL,并贴出openssl s_client -connect <hostname>:<port> -tls1 -servername <hostname> | openssl x509 -text -noout的输出。通过单击编辑将其添加到您的问题中(不要将其作为评论发布)。否则,我们无法重现它,也没有足够的信息来帮助解决它。
  • 我不知道您是如何创建证书的,但 CN=example.com 可能是错误的。主机名始终位于 SAN 中。如果它出现在 CN 中,那么它也必须出现在 SAN 中(在这种情况下您必须列出两次)。更多规则和原因见How do you sign Certificate Signing Request with your Certification AuthorityHow to create a self-signed certificate with openssl?

标签: ruby-on-rails ruby windows outlook openssl


【解决方案1】:
sudo port install curl-ca-bundle

并告诉你的 https 对象使用它:

https.ca_file = '/opt/local/share/curl/curl-ca-bundle.crt'

请注意,如果您希望代码在 Ubuntu 上运行,则需要设置 ca_path 属性,默认证书位置为 /etc/ssl/certs。

在初始化器中添加以下代码:

require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

【讨论】:

【解决方案2】:

尝试在您的 gemfile 中添加 gem 'certified' 并运行 bundle install。

gem 'certified'
bundle install

【讨论】:

  • 我尝试运行'gem install 'certified',捆绑安装,但不幸的是它不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-05-19
  • 2020-10-09
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2012-03-15
  • 2021-07-20
  • 2021-11-10
相关资源
最近更新 更多