このリポジトリは、ローカル開発環境をHTTPS化するためのデモです。
- 本物の証明書: 自己証明書を使わずに本物の証明書を使います。自己証明書でもローカル開発環境をHTTPS化することはできますが、macOSやWindows、LinuxなどOSによって設定方法が異なり、マニュアルの作成も手間ですし、自動化するにしてもそれぞれ異なるため、手間がかかります。本物の証明書を使えば、設定方法はOSに依存せず、自動化もしやすいです。
- /etc/hostsの変更が不要: ドメイン名解決をCloudflareのDNSに任せるため、/etc/hostsの変更が不要です。
ローカルでもHTTPSで開発することで、本番環境でのトラブルを減らすことができるというのは、周知のメリットかと思いますが、実際にやってみると、証明書の取得や設定が面倒だったり、自己証明書を使うとブラウザで警告が出たりして、なかなか手を出しにくく優先度が低くなりがちです。このデモでは、そのようなハードルを下げるために、証明書の取得や設定を自動化し、手軽にローカル開発環境をHTTPS化する方法を示します。
- インターネット非公開:
ngrokやcloudflaredを使って、ローカル開発環境をHTTPS化する方法は手軽です。しかし、これらのツールを使うと、ローカル開発環境がインターネットに公開されてしまいます。もちろん、これらのツールのURLはランダムで割り振られるため、基本的にはアクセスされることはないでしょうが、それでもセキュリティ的には気になります。また、組織のポリシーによってはパブリックへの公開が禁止されていたり、手続きを踏まなければならなかったりすることもあります。このデモは、ローカル開発環境をインターネットに公開せずにHTTPS化する方式を採用しています。
- Dockerがインストールされていること
- Cloudflareのアカウントを持っていること
- 独自ドメインを持っていて、CloudflareでDNSを管理していること
- CloudflareのAPIトークンを取得していること
- リポジトリをクローンします。
- クローンしたディレクトリに移動します。
- CloudflareのAPIトークンをcloudflare.iniに記述します。
dns_cloudflare_api_token = {自分のAPIトークン} - Dockerfile内の
-d "*.suin.127s.suin.org"を自分のドメインに変更します。 - 以下のコマンドを実行して、Dockerイメージをビルドします。
docker build . -t playground-certbot - 以下のコマンドを実行して、Dockerコンテナを起動します。
docker run -it -p 80:80 -p 443:443 playground-certbot
- ブラウザで
https://{自分のドメイン}にアクセスします。 - phpinfoが表示されたら成功です。
