小编DWS*_*DWS的帖子

SSL模式标志 - 证书验证:使用安全:无?

我正在使用Savon和HTTPi,一个Ruby soap客户端和一个Ruby HTTP客户端接口,通过SSL写一个soap请求.这是代码:

client = Savon::Client.new(original_class.constantize.wsdl_url)
client.http.auth.ssl.cert_key_file = "path_to_the_key"
client.http.auth.ssl.cert_key_password = 'secret'
client.http.auth.ssl.cert_file = "path_to_the_certification"
client.http.auth.ssl.verify_mode = :none
@response = client.request :ins0, action do
  soap.body = encoded_body
end
Run Code Online (Sandbox Code Playgroud)

这是我实现这一目标的唯一方法.但是,我知道还有其他三种验证模式,它们是:

  • :peer(SSL_VERIFY_PEER)
  • :fail_if_no_peer_cert(SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
  • :client_once(SSL_VERIFY_CLIENT_ONCE)

如果我将验证模式更改为上述任何其他模式,我会收到此错误:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

然后是我的问题(我的问题):

  • 如果我将验证模式保持为:none,我会做错吗?是否缺乏安全性?
  • 这个错误究竟意味着什么?我的代码错了或我的证书(自我分配---我在开发环境中)不好?

我阅读了有关验证模式的OpenSSL文档:

http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html

关于客户端模式下的SSL_VERIFY_NONE,说:

使用SSL_get_verify_result(3)函数进行TLS/SSL握手后,可以检查证书验证过程的结果.无论验证结果如何,握手都将继续.

我应该担心吗?我应该看看验证模式:none是危险的吗?

我问的是,因为我无法使其与其他验证模式一起工作,所以我想以现在的工作方式通过SSL功能发布soap请求.但如果这可能是危险的,我肯定不会这样做.

ruby ssl soap savon httpi

5
推荐指数
1
解决办法
3701
查看次数

标签 统计

httpi ×1

ruby ×1

savon ×1

soap ×1

ssl ×1