HTTP2経由でリモートREST APIを実行しています。証明書を使用してSSLを実行します。目標は、Proxy経由でSSL証明書を使用してHTTP2経由でデータを送受信することです。PROXY、rubyを介したHTTP2リクエスト
HTTP2で要求を送信できるようにするhttp-2 &のnet-http2宝石があります。しかしプロキシはどうですか?標準のNet :: HTTPライブラリには、親クラスのNet :: HTTPクラスの動作を複製する子クラスNet :: HTTP :: Proxyがありますが、これはproxy-server経由でリクエストを送信します。しかし、HTTP2の宝石はそれをサポートしていません。
ザ・私が思いついたアイデアはhttp1.1のプロキシの実装に似たものを作ることです閉じて - 「ホスト:」の書き込みをし、「プロキシ認証:」ソケットへのフィールド、そのネットHTTP2宝石を使用しています:
@socket.writeline sprintf('CONNECT %s:%s HTTP/%s',
@address, @port, HTTPVersion)
@socket.writeline "Host: #{@address}:#{@port}"
if proxy_user
credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')
credential.delete!("\r\n")
@socket.writeline "Proxy-Authorization: BasiC#{credential}"
end
@socket.writeline ''
しかし、それはで終わる:私はこれを達成するために、いくつかの技術的な知識を逃すかもしれないので、研究の方向性に関連するすべてのヘルプは高く評価され
SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
。