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.crt
と server.key
を指定し、ポート443でリッスンするように指定しています。
hosts に以下の通り記載します
127.0.0.1 sumito.jp
これで、ローカル環境でHTTPSサーバーが立ち上がりました。ブラウザで https://sumito.jp/
にアクセスすると、自己署名証明書の警告が出る場合がありますが、それを無視して進めばウェブサーバーにアクセスできます。
注意点として、この方法で作成した証明書は自己署名なので、実際の運用環境では使えません。
本番環境で使う場合は、認証局から発行された適切な証明書を取得する必要があります