仕事で開発してるアプリケーションを、プロキシ対応させる必要があったので、dockerで簡単に起動できるようにDockerfileを用意してみました。 簡単にプロキシ通した接続試してみたいけど、squidの設定とか調べるの面倒😮💨というときにはどうぞ。
kenyog/proxy-server-for-develop (opens new window)
# できること
プロトコルは以下の4パターンに対応
接続先がhttpsの場合はCONNECTメソッドによる接続に制限しています。
プロキシの認証方式としては以下の3パターンが使えます。
- 認証無し
- BASIC認証
- DIGEST認証
# 使い方
gitのリポジトリをクローンしてきて、docker-compose upでOKです。
git clone https://github.com/kenyog/proxy-server-for-develop.git
cd https://github.com/kenyog/proxy-server-for-develop.git
docker-compose build
docker-compose up -d
# ポート番号
それぞれ下表のように、ポート番号で切り分けていますので、試したいパターンによってポート番号を切り替えてください。
| port | プロキシプロトコル | 認証 |
|---|---|---|
| 8001 | http | なし |
| 8002 | http | BASIC |
| 8003 | http | DIGEST |
| 8011 | https | なし |
| 8012 | https | BASIC |
| 8013 | https | DIGEST |
認証ありの場合のパスワードは以下で固定されています。
| ユーザー | パスワード |
|---|---|
| user01 | pass01 |
| user02 | pass02 |
| user03 | pass03 |
# 証明書
プロキシサーバーのプロトコルをhttpsとする場合は証明書が必要になります。 (まぁなくても証明書チェック警告を無視すればいいのですが、開発時に試すならちゃんと用意したいですよね)
# cURLでの確認
以下のコマンドでプロキシを試せます。
認証なしプロキシ on http
curl --proxy http://192.168.x.y:8001/ https://www.example.com/ curl --proxy http://192.168.x.y:8001/ http://www.example.com/BASIC認証プロキシ on http
curl --proxy http://192.168.x.y:8002/ --proxy-basic --proxy-user user01:pass01 https://www.example.com/ curl --proxy http://192.168.x.y:8002/ --proxy-basic --proxy-user user01:pass01 http://www.example.com/DIGEST認証プロキシ on http
curl --proxy http://192.168.x.y:8003/ --proxy-digest --proxy-user user03:pass03 https://www.example.com/ curl --proxy http://192.168.x.y:8003/ --proxy-digest --proxy-user user03:pass03 http://www.example.com/認証なしプロキシ on https
curl --proxy https://192.168.x.y:8011/ https://www.example.com/ curl --proxy https://192.168.x.y:8011/ http://www.example.com/BASIC認証プロキシ on https
curl --proxy https://192.168.x.y:8012/ --proxy-basic --proxy-user user01:pass01 https://www.example.com/ curl --proxy https://192.168.x.y:8012/ --proxy-basic --proxy-user user01:pass01 http://www.example.com/DIGEST認証プロキシ on https
curl --proxy https://192.168.x.y:8013/ --proxy-digest --proxy-user user01:pass01 https://www.example.com/ curl --proxy https://192.168.x.y:8013/ --proxy-digest --proxy-user user01:pass01 http://www.example.com/
proxyサーバーにhttpsでアクセスする場合に、証明書がオレオレ証明書の場合は、
--proxy-cacert {親証明書}で証明書を設定すれば証明書のチェックでエラーが出ずにアクセスできるはずです。
例)
curl --proxy https://192.168.x.y:8011/ --proxy-cacert ./rootCA.crt https://www.example.com/
# おわりに
簡単にプロキシ通した接続試してみたいけど、squidの設定とか調べるの面倒😮💨というときにはどうぞ。
ただし、本格的なプロキシ導入のためのものではありません。あくまで開発時のテスト用としてください。