Node.jsでHTTPSサーバを起動する方法

Windows10+Node.jsHTTPS(Hypertext Transfer Protocol Secure)サーバを起動する方法です。
XAMPPでやろうと思ってたけど手順が複雑(´・ω・`)
調べてみるとNode.jsの方が簡単!てことで、Node.jsを利用しました。

前提条件

  • OSはWindows10
  • Node.jsインストトール済み
  • Git Bashインストール済み
  • ブラウザはGoogle Chromeを使用

Git BashはSSL証明書を作成するために使用します。
インストール方法はこちらの記事を参考にしてください。(Git for Windowsをインストール)

TortoiseSVNからTortoiseGitへの移行メモ

HTTPSサーバの構築

SSL証明書の作成

  1. Node.jsインストールフォルダ配下に任意のフォルダを作成
  2. Git Bashで上記フォルダに移動し、以下のコマンドを実行
$ openssl genrsa -out server-key.pem 2048
$ openssl req -batch -new -key server-key.pem -out server-csr.pem -subj "//C=JP/ST=Osaka/L=Osaka-shi/O=Sample/OU=Dev1/CN=192.168.0.8"
$ openssl x509 -req -in server-csr.pem -out server-crt.pem -signkey server-key.pem -days 3650 -sha256

SSL証明書が作成されます。

設定項目の内容はこのようになっています。
試験サーバなので適当でいいと思いますが、ひとまず設定。国名は無視されるようですがコマンドでは指定しました。

C 国名
ST 都道府県
L 市区町村
O 法人名
OU 部署名
CN サーバ名

HTTPSサーバの作成

SSL証明書を作成したフォルダ内に、以下のファイルを作成します。test.htmlには表示したいコンテンツを記述してください。

https.js

const https = require('https');
const fs = require('fs');
const sslServerKey = 'server-key.pem';
const sslServerCrt = 'server-crt.pem';

var options = {
    key: fs.readFileSync(sslServerKey),
    cert: fs.readFileSync(sslServerCrt)
};

var server = https.createServer(options,
    (request, response) => {
        fs.readFile('./test.html', 'UTF-8',
        (error, data) => {
            response.writeHead(200, {'Content-Type':'text/html'});
            response.write(data);
            response.end();
        });
    }
);
server.listen(3001);
console.log('server running...')

HTTPSサーバの起動

  1. 以下のコマンドを実行する
node https.js
  1. Google Chromeでhttps://localhost:3001/にアクセス
  2. 警告画面が出るので、詳細設定ボタンをクリック なんちゃってSSL証明書警告
  3. localhostにアクセスする(安全ではありません)をクリック なんちゃってSSL証明書警告

用意したコンテンツが表示されます。

参考

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です