a laptop computer sitting on top of a wooden desk

ローカル環境でHTTPSサーバーを立ち上げる

OpenSSLとNode.jsの http-server モジュールを使って、ローカル環境でHTTPSサーバーを立ち上げる方法を説明。

Subject Alternative Name (SAN) を設定する

vim SAN.txt
---
subjectAltName = DNS:sumito.jp

この手順では、SANを指定するためのファイル SAN.txt を作成します。ここでは sumito.jp をSANとして指定していますが、適宜変更してください。

秘密鍵と証明書の作成

openssl genrsa -out server.key 2048
openssl req -out server.csr -key server.key -new
openssl x509 -req -days 3650 -signkey server.key -in server.csr -out server.crt -extfile SAN.txt

この一連のコマンドで、2048ビットの秘密鍵 server.key と、その秘密鍵に基づく証明書署名リクエスト(CSR) server.csr を作成します。最後に、CSRと秘密鍵から、有効期限3650日の自己署名証明書 server.crt を作成しています。この際、先ほど作成した SAN.txt ファイルを使ってSANを設定しています。

HTTPSサーバーの起動

http-server -S -C server.crt -K server.key -p 443

最後に、http-server コマンドを実行して、HTTPSサーバーを起動します。このコマンドでは、作成した server.crtserver.key を指定し、ポート443でリッスンするように指定しています。

hosts に以下の通り記載します

127.0.0.1       sumito.jp

これで、ローカル環境でHTTPSサーバーが立ち上がりました。ブラウザで https://sumito.jp/ にアクセスすると、自己署名証明書の警告が出る場合がありますが、それを無視して進めばウェブサーバーにアクセスできます。

注意点として、この方法で作成した証明書は自己署名なので、実際の運用環境では使えません。

本番環境で使う場合は、認証局から発行された適切な証明書を取得する必要があります