Node.js + Express 環境の HTTPS 化をしてみた。
まず、サーバ証明書を作成します。
続いて、Express のサーバ実行コマンドを編集します。
編集内容としては、HTTP サーバ実行コマンド関連をコメントアウトし、HTTPS サーバ実行コマンドを追記する。 (太字部分を変更する。)
ちなみに、"3000" となっているところを変えると、ポート番号をデフォルトの 3000 番から変更可能。
サーバを再起動して、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
$ 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);
:
:
/**
* 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 件のコメント :
コメントを投稿