こうこく
作 ▸
改 ▸

ExpressのWebサーバーをオレオレHTTPS化する

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

express 4.16.4express-generator 4.16.0OpenSSL 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

サンプルのExpressアプリを用意する

express-generator を使います。これをやると、カレントディレクトリに testapp ディレクトリが作成されます。

npm install -g express-generator
express testapp
cd testapp
npm install

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化されてます。

この記事に何かあればこちらまで (非公開)