HTTPS proxy is only enabled if the proxied connection is also SSL

オープン
#210 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
ruby
領域
networking

調査の方向性

lib/net/http.rb の 1667-1674 行付近から始め、明確な HTTP ターゲットと HTTPS プロキシを使用して、報告された Net::HTTP の設定を再現します。プロキシソケットのセットアップを追跡し、ターゲットへの接続を変更せずに、平文 HTTP リクエストを HTTPS プロキシ経由で転送できることを確認します。示されている設定を使った、対象を絞った回帰テストで動作を確認します。

索引モデルが issue の本文から書いたものです。

説明

irb(main):001> require 'net/http'
=> true
irb(main):002> n = Net::HTTP.new('192.0.2.10', 80, '127.0.0.1', 5000, nil, nil, nil, true)
=> #<Net::HTTP 192.0.2.10:80 open=false>
irb(main):003> n.instance_variable_get(:@proxy_use_ssl)
=> true
irb(main):004> n.start
=> #<Net::HTTP 192.0.2.10:80 open=true>
irb(main):005> n.get('/')

Data sent to the listener at 127.0.0.1:5000:

GET http://192.0.2.10/ HTTP/1.1
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
User-Agent: Ruby
Host: 192.0.2.10

This is due to the proxy SSL socket setup being inside a if use_ssl? block.

https://github.com/ruby/net-http/blob/master/lib/net/http.rb#L1667-L1674

Transporting clear HTTP over a HTTPS proxy is a valid configuration, the library should support this.

主要言語
Ruby
スター
148
フォーク
95
平均マージ
10時間 54分
マージ済み PR(30日)
4

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ruby/net-http のほかの issue

ruby/net-http の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。