Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby SSL握手未接收服务器Hello back-使用代理网络::HTTP_Ruby On Rails_Ruby_Ssl_Openssl_Net Http - Fatal编程技术网

Ruby on rails Ruby SSL握手未接收服务器Hello back-使用代理网络::HTTP

Ruby on rails Ruby SSL握手未接收服务器Hello back-使用代理网络::HTTP,ruby-on-rails,ruby,ssl,openssl,net-http,Ruby On Rails,Ruby,Ssl,Openssl,Net Http,我正在使用Ruby SSL双向身份验证连接到外部API 我的最新剧本如下: namespace :rnif_message do # With Proxy task send_test_index: :environment do our_cert = File.read(File.join(Rails.root, 'ssl', 'invoice', 'test', 'cert20190116_ourcert.der')) their_test_cert = F

我正在使用Ruby SSL双向身份验证连接到外部API

我的最新剧本如下:

namespace :rnif_message do
  # With Proxy
  task send_test_index: :environment do
  our_cert         = File.read(File.join(Rails.root, 'ssl', 'invoice', 'test', 'cert20190116_ourcert.der'))
  their_test_cert  = File.read(File.join(Rails.root, 'ssl', 'invoice', 'test', 'testcert2016_theircert.der'))


  cert_store = OpenSSL::X509::Store.new
  # Contains their intermediate CA files
  cert_store.add_path File.join(Rails.root, 'ssl', 'invoice', 'test', 'ca')
  cert_store.add_cert  OpenSSL::X509::Certificate.new(their_test_cert)

  uri = URI("https://xml.digital.com/wm.rn/receive")

  proxy_host = "us-static-02.qg.com"
  proxy_port = "port"
  proxy_user = "user"
  proxy_pass = "pass"

  proxy_request = Net::HTTP.new(uri.hostname, '443', proxy_host, proxy_port, proxy_user, proxy_pass)

  proxy_request.verify_mode = OpenSSL::SSL::VERIFY_PEER
  proxy_request.use_ssl = true
  proxy_request.ssl_version = :TLSv1_2
  proxy_request.ciphers = ["AES256-SHA:AES128-SHA:DES-CBC3-SHA"]

  proxy_request.cert = OpenSSL::X509::Certificate.new(our_cert)
  proxy_request.cert_store = cert_store

  post_request = Net::HTTP::Post.new(uri)

  response = proxy_request.request(post_request)
end
回复(因为我更新了密码)现在是

OpenSSL::SSL::SSLError:SSL\u connect SYSCALL返回=5 errno=0 state=unknown state 而不是我前面两个问题中的老问题

OpenSSL::SSL::SSLError:SSL\u connect SYSCALL返回=5 errno=0 state=SSLv3读取服务器hello A
这通常会连接到几乎所有的服务器。它使用TLS1.2和SNI。这将建立TCP连接并启动TLS握手。稍后握手可能会失败,但这是另一个问题

$ openssl s_client -connect xml.digitaloilfield.com:443 -tls1_2 \
    -servername xml.digitaloilfield.com -debug
<hang>
connect: Connection timed out
connect:errno=110
Netstat不会向您显示
SYN\u SEND
状态,因此请使用
tcptrack

$ sudo tcptrack -i eth0
# <next, use s_client>

172.16.2.4:43302      208.38.22.37:443      SYN_SENT     15s    0 B/s
$sudo tcptrack-i eth0
# 
172.16.2.4:43302 208.38.22.37:443同步发送15s 0 B/s
您处于TCP的等待计时器中。对方没有与你进行三方握手。事实上,他们没有确认您的
SYN
。可能有一些原因,但是

给定目标,看起来您遇到了防火墙。它不是拒绝连接,而是删除连接。它有时被称为“隐形模式”;这使得机器上似乎没有运行服务器。这与OpenSSL的
connect:Connection timed out
消息一致

问题可能出在代理上。您确实希望从那里运行测试,但可能无法运行。可能是您正在使用远程站点指定的密码、协议和端口;但代理在做自己的事情。也可以看Jarmock的

以下是一些参考资料:

  • 在Wireshark维基上

这通常会连接到几乎所有的服务器。它使用TLS1.2和SNI。这将建立TCP连接并启动TLS握手。稍后握手可能会失败,但这是另一个问题

$ openssl s_client -connect xml.digitaloilfield.com:443 -tls1_2 \
    -servername xml.digitaloilfield.com -debug
<hang>
connect: Connection timed out
connect:errno=110
Netstat不会向您显示
SYN\u SEND
状态,因此请使用
tcptrack

$ sudo tcptrack -i eth0
# <next, use s_client>

172.16.2.4:43302      208.38.22.37:443      SYN_SENT     15s    0 B/s
$sudo tcptrack-i eth0
# 
172.16.2.4:43302 208.38.22.37:443同步发送15s 0 B/s
您处于TCP的等待计时器中。对方没有与你进行三方握手。事实上,他们没有确认您的
SYN
。可能有一些原因,但是

给定目标,看起来您遇到了防火墙。它不是拒绝连接,而是删除连接。它有时被称为“隐形模式”;这使得机器上似乎没有运行服务器。这与OpenSSL的
connect:Connection timed out
消息一致

问题可能出在代理上。您确实希望从那里运行测试,但可能无法运行。可能是您正在使用远程站点指定的密码、协议和端口;但代理在做自己的事情。也可以看Jarmock的

以下是一些参考资料:

  • 在Wireshark维基上

这是一个将客户端证书与
s_客户端一起使用的好例子:。这是一个将客户端证书与
s_客户端一起使用的好例子:。
$ sudo tcptrack -i eth0
# <next, use s_client>

172.16.2.4:43302      208.38.22.37:443      SYN_SENT     15s    0 B/s