2018-02-20

Node.js + Express の HTTPS 化

Node.js + Express 環境の HTTPS 化をしてみた。



まず、サーバ証明書を作成します。
$ cd <express-app-dir>
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

続いて、Express のサーバ実行コマンドを編集します。
$ vi <express-app-dir>/bin/www

編集内容としては、HTTP サーバ実行コマンド関連をコメントアウトし、HTTPS サーバ実行コマンドを追記する。 (太字部分を変更する。)
ちなみに、"3000" となっているところを変えると、ポート番号をデフォルトの 3000 番から変更可能。
#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('api:server');
//var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

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

/**
 * Create HTTPS server.
 */

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

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
    :
    :



サーバを再起動して、HTTPS でアクセスすればセキュアにアクセス可能になります。
というわけで、いじょ!



0 件のコメント :

コメントを投稿