mkcertでローカルな環境をHTTPS化する
はじめに
ウェブ上のサービスを開発するにあたって、ローカルなウェブサーバをHTTPSで運用したくなることがあります。OpenSSLを使って自己署名証明書を発行する方法が良く知られていますが、手順も多く運用はなかなか大変です。mkcert というツールを使うことでこの手間を軽減できます。
mkcert
mkcert には Linux, Mac, Windows の書くプラットフォーム向けのインストール方法が用意されています。
Debian の場合は以下の通り。
$ sudo apt install libnss3-tools mkcert
使い方は非常に簡単です。
$ mkcert -install
ルート CA 証明書が作成されてインストールされます。
- システム
- /usr/local/share/ca-certificates/mkcert_development_CA_*.crt
- /etc/ssl/certs/mkcert_development_CA_*.pem
- Firefox
- Chrome
ルート CA 証明書のファイルが .local/share/mkcert にあるので、自分が必要な場所にコピーして使うこともできます。
$ mkcert -CAROOT
/home/splout/.local/share/mkcert
$ ls /home/splout/.local/share/mkcert
rootCA-key.pem rootCA.pem
ルート CA 証明書の次はサーバ証明書です。
$ mkcert localhost
$ ls
localhost-key.pem localhost.pem
コマンドを実行したディレクトリに localhost 用の証明書が作成されます。
$ sudo cp localhost-key.pem /etc/ssl/private/localhost-key.pem
$ sudo cp localhost.pem /etc/ssl/certs/localhost.pem
/etc/ssl の下にコピーしたら、Apache の設定に以下を追加します。
SSLCertificateFile /etc/ssl/certs/localhost.pem
SSLCertificateKeyFile /etc/ssl/private/localhost-key.pem
これで https://localhost/ がブラウザの警告無しで使えるようになります。