Ruby SOAP SSL 问题

标签 ruby soap ssl

我有一个用 Ruby 编写的 SOAP 客户端,我正在尝试使用 Ruby SOAP 服务器,但无济于事。客户端通过 SSL 使用 Python SOAP 服务器正常工作,但不适用于 Ruby 版本。这是服务器的样子:

require 'soap/rpc/standaloneServer'
require 'soap/rpc/driver'
require 'rubygems'
require 'httpclient'

def cert(filename)
  OpenSSL::X509::Certificate.new(File.open("path to cert.cert") { |f|
    f.read
  })
end

def key(filename)
  OpenSSL::PKey::RSA.new(File.open("path to rsaprivate.key") { |f|
    f.read
  })
end

class Server < SOAP::RPC::HTTPServer
 ~code snipped for readability~
end

server = Server.new(:BindAddress => HelperFunctions.local_ip, :Port => 1234, :SSLCertificate => cert("path to cert"), :SSLPrivateKey => key("path to rsa private key"))
new_thread = Thread.new { server.start }

为了可读性,我删减了一些代码(例如,我公开了其中的一些方法)并且它在关闭 SSL 的情况下工作正常。但是当客户端尝试连接时,它会看到:

warning: peer certificate won't be verified in this SSL session
/usr/lib/ruby/1.8/net/http.rb:567: warning: using default DH parameters.
/usr/lib/ruby/1.8/net/http.rb:586:in `connect': unknown protocol (OpenSSL::SSL::SSLError)

我试着听取了 this post 的一些建议现在我看到这条消息:

/usr/lib/ruby/1.8/soap/httpconfigloader.rb:64:in `set_ssl_config': SSL not supported (NotImplementedError)

任何有关如何解决此问题的想法都将不胜感激。

最佳答案

精氨酸。我试图跟随 this link事实证明我缺少一个简单的 include 语句:

require 'webrick/https'

结合原始问题中链接的帮助解决了问题。希望这可以为其他人节省一个小时的悲伤 :)

关于Ruby SOAP SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199665/

相关文章:

ruby - 安装pg(0.21.0)时出错,Bundler无法继续

Ruby - 从另一个数组访问相应的元素

java - IBM RAD/RSA : "Generate Java bean skeleton" Does Not Display When Right-Clicking WSDL File

php - 如何为 xsd :anyType 创建 soapvar 对象

node.js - 使用 TLS 的弹性转储 - 无法验证第一个证书

PHP cURL https 不适用于新的 VPS

mysql - 带有命名空间的模型 - 错误的表名(没有命名空间)

ruby-on-rails - 使用 Nokogiri 解析 HTML - The Ruby/Rails Way

java - 如何在 Java 中发送 SOAP 请求头?

unix - 使用 ocaml-cohttp Client.post 方法请求 HTTPS 服务器时如何调试 HANDSHAKE_FAILURE? (为什么我会收到这个错误?)