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/ がブラウザの警告無しで使えるようになります。


コメント