ExpressのWebサーバーをオレオレHTTPS化して、https://IPアドレス のURLで呼び出せるようにしました。ここでは express-generator で作ったExpressアプリに対してやりました。

[ express@4.16.4 / express-generator@4.16.0 / OpenSSL 1.0.2k-fips ]

オレオレ証明書を作る

オレオレ証明書を作ります。

適当な場所に key ディレクトリを作成して、その中に秘密鍵 private_key.pem と、証明書 server.crt を作りました。

mkdir key
cd key
openssl genrsa 2048 > private_key.pem
openssl req -new -key private_key.pem > server.csr
openssl x509 -days 3650 -req -signkey private_key.pem < server.csr > server.crt

bin/www を書き換える

expressアプリ内に bin ディレクトリがあるので、その中の www ファイルを書き換えます。

25行目あたりの var server = http.createServer(app); のあたりを以下の通りに変更しました。

//var server = http.createServer(app);

var fs = require('fs');
var https = require('https');
var options = {
	key: fs.readFileSync('/path/to/key/private_key.pem'),
	cert: fs.readFileSync('/path/to/key/server.crt')
};
var server = https.createServer(options, app);

この状態で npm start すれば、起動したWebサーバーは上で作ったオレオレ証明書でHTTPS化されてます。