OAuthが絡むアプリケーションを開発していると、時折 https://localhost/ でローカルのアプリケーションサーバーにアクセスをしたくなる状況があります。セキュリティ上、リダイレクト先URLの指定が必要で、かつhttpsしか設定できない場合があるためです。

ローカルにプロキシサーバーを立てて解決する手法がありますが、調べてみた限り設定が必要で、かつ手元の環境を汚してしまうものでした。(部屋はともかく)PC内環境美化に力を入れている私としては、何とか余計なインストールは避けたいところ。

そこで、Dockerを使ってSSL Terminationをするプロキシを作成しました。環境を汚さないだけでなく、初回は30秒程度、二回目以降は1秒程度と高速にセットアップすることが可能です。GitHubおよびDockerHubで公開していますので、需要がある方はご利用ください。

使い方は簡単ですが、IPの取得箇所はOSに依存しています。ご利用の環境に併せて叩き分けてください。下記のコマンドは、ポート3000番で動いているローカルアプリケーションへのプロキシを作成する場合です。

Mac OSX

docker run -it \
  -e "HOST_IP=`ipconfig getifaddr en0`" \
  -e "PORT=3000" \
  -p 443:443 \
  --rm \
  esplo/docker-local-ssl-termination-proxy

Linux

docker run -it \
  -e "HOST_IP=`hostname -I | awk '{print $1}'`" \
  -e "PORT=3000" \
  -p 443:443 \
  --rm \
  esplo/docker-local-ssl-termination-proxy

Windowsは?

Pull Request、お待ちしております。

以下はこのDockerイメージを作った原因や、どのようにできているかの説明です。

Continue reading

Author's picture

esplo