作 ▸
Node.js http-serverをhttpsで動かす
これのことね
http-server 14.1.1OpenSSL 1.1.1
やりかた
以下コマンドで起動すればOK
npx http-server --tls true --cert {証明書ファイルの場所} --key {秘密鍵ファイルの場所}
これで https://localhost:8080
にアクセスできる (ポートは初期値)
オレオレ証明書と秘密鍵の作り方
Linuxなら以下コマンドで自己署名証明書を作れます (有効期限10年)
openssl genrsa 2048 > private.key
openssl req -new -key private.key > server.csr -subj "/CN=localhost"
openssl x509 -days 3650 -req -signkey private.key < server.csr > server.crt
カレントディレクトリに作成された private.key
が秘密鍵ファイル、server.crt
が証明書ファイルです
server.csr
は証明書署名要求ファイルなので削除して大丈夫
もちろん自己署名証明書なので、これで立ち上げた http-server にブラウザでアクセスしようとすると警告が表示されます
Windowsでできる?
少し調べたけど、今のところWindows標準の機能だけじゃ無理っぽい
PowerShellで、証明書ストアに自己署名証明書を作るだけなら New-SelfSignedCertificate
コマンドでできるし、それで作った証明書をpfx形式でエクスポートするだけなら certutil
コマンドでできるんだけど、結局そこからPEM形式で証明書と秘密鍵を取り出すにはOpenSSL for Windowsが必要らしい
だったらもうOpenSSL for WindowsかWSLを導入して普通に証明書作った方が速いです
Windows OSで、証明書や秘密鍵をPEM形式に変換してエクスポートする:Tech TIPS(1/2 ページ) - @IT