mkcert 証明書を用いてローカル環境で Secure Contexts(HTTPS)

Web Bluetooth や WebNFC, MediaDevices などウェブブラウザだけで実現できることが増えてきて便利になった反面、そうした機能を用いるために Secure Contexts(HTTPS)が要求される機会も増えました。

外部に公開されているウェブサーバであれば、いずれにせよ証明書の取得や更新、設定が必要となるので気にすることもないですが、ローカル開発環境で検証する際には鬱陶しいと思うこともしばしば。

そこで https モデュールと mkcert 証明書を用いてローカル環境で擬似的に通信の暗号化をすることを考えます。

実行環境は Linux (Ubuntu) です。

まずはアプリケーションを作成して必要なモデュールを用意します。

アプリケーションの準備が整ったら、次に mkcert をインストールします。
単体でインストールすると Firefox と Chrome/Chromium ブラウザに証明書を自動的に導入できないという警告文が表示されるので libnss3-tools も一緒に導入したほうが簡潔です。

導入後に次のコマンドを実行するとローカル認証局 Certificate Authority (CA) が作成されます。

これはサーバに対して証明書を発行するローカル認証局 (CA) です。作成される場所はカレントディレクトリではなく -CAROOT オプションで表示されるパスです。

これで証明書を発行できるようになりましたので、任意のディレクトリに証明書を作成します。

証明書ファイルが作成されましたのでアプリケーションのサーバから、これらを読み込みます。

Express アプリケーションのスタートアップスクリプトは bin/www ファイルなので、これに編集を加えます。

これで準備完了なのでアプリケーションを起動して、ウェブブラウザを用いて動作確認を行います。

ここまで設定しても”NET::ERR_CERT_AUTHORITY_INVALID” の警告文が表示される場合、ウェブブラウザを再起動すると証明書が読み込まれて解決する場合があります。

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us