家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

CONNECTメソッドとアクセスログ

概要

httpsは通信を行うWebサーバとクライアント間で通信を暗号化することで、通信をしている端末以外は内容が分からない、というものです。
プロキシサーバがいる場合であってもそれは変わりません。

 

 

 

httpでは通信が暗号化されていないため、クライアントのリクエスト(GET)する内容はファイル名(パス)も含めてプロキシサーバで見ることができますが、httpsではGETを使うことができません。
そのため、httpsではGETの代わりにCONNECTメソッドを使用します。

CONNECT www.test.com:443 HTTP/1.1

 

CONNECTメソッドを受信したプロキシサーバは宛先サーバとTCPコネクションを確立し、クライアントには「HTTP/1.1 200 Connection Established」のhttpメッセージを返します。セッションを確立した後は送信元であるクライアントのIPアドレスと送信元ポートの組み合わせの通信については、IPヘッダとTCPヘッダを変更してWebサーバへ転送するのみになります。
そのため、CONNECTメソッドのログはGETメソッドと異なり、取得するファイル名(パス)まで含まれてないのでプロキシのアクセスログにもホスト名までしか残りません。

f:id:iestudy:20220116231558p:plain

プロキシサーバの通信概要

なお、httpsの通信についてもプロキシサーバで制御やログの取得を行いたい場合はSSLの複合化を行う必要があります。

基本的な内容だとは思いますが、自分の中で整理できていなかったのでまとめました。

 

参考にさせていただいたサイト

realizeznsg.hatenablog.com

milestone-of-se.nesuke.com