返信
Proxy利用時のhttps通信のパケット(IPヘッダ、TCPヘッダ)に関して
戸根先生
「PC → Proxyサーバ → Webサーバ」の通信(HTTPS)についての質問です。
・設計・分析・管理のすべて
・ネットワークはなぜつながるのか 第2版
・完全理解 TCP/IPネットワーク
の3冊に関係する部分のご説明がありますが、
しっかりと理解出来ていないのでご質問させて頂きたいと思います。
■知りたいこと
「PC → Proxyサーバ → Webサーバ」のHTTPS通信時に、
パケットの中身がどうなっているかを知りたい。
特に、宛先IPアドレスとTCPポート番号がどうなっているか?
に関して理解したいです。
※以下の質問では、
Proxyサーバは、TCP3128でリクエストを待っている。
Webサーバは、TCP80(http)とTCP443(https)でリクエストを待っている
という前提でお願いいたします。
■質問
「完全理解 TCP/IPネットワーク」をもとにご質問させて頂きたいと思います。
P293の図5-22のところです。
そもそものProxyを介したHTTPS通信の流れは、
1. PCがProxyに通信したい相手(Webサーバ)の情報を伝達する。(CONNECTコマンド)
2. ProxyがWebサーバとやり取りする。
3. ProxyがPCにWebサーバとの通信準備が整ったことを知らせる。
4. PCがWebサーバと通信する。ただしパケットはProxyを経由してからWebサーバに到達する。
というものだと思っておりますが、大筋で間違いはないでしょうか?
========== ここからが質問させて頂きたい内容です ==========
上記1~4の理解が間違っていないことが前提になりますが、
上記1の時、
PC→Proxy向きのパケットの宛先IPアドレスは、ProxyのIPで、
TCPのDestinationポート番号は、Proxyサーバのポート番号=3128。
これで合っているでしょうか?
上記2の時、
Proxy→Webサーバ向きのパケットの宛先IPは、WebサーバのIPで、
TCPのDestinationポート番号は、Webサーバのポート番号=80。
これで合っているでしょうか?
sslのポート番号443ではなく、80を使うと考えています。
上記4の時、
PC→Webサーバのパケットの宛先IPは、ProxyのIPで、
TCPのDestinationポート番号は、sslのポート番号=443。
ただしProxyサーバまでパケットが到着すると、
Proxyは、宛先IPをWebサーバのものに書き換え、
送信元IPは、自身のIPに書き換えて転送する。
→TCPヘッダはノータッチで変更しない。
これで合っているでしょうか?
ここが一番、理解出来ていないところです。
よろしくお願いいたします。