Docker上に簡易HTTPSサーバを構築する(Node.js)
HTTPSでデータのやりとりを確認したいときがあったので簡易的なHTTPSサーバを作成してみた。
環境
- Docker
- Version 18.03.1-ce-win65 (17513)
- Node.js
- v8.11.3
- npm
- 5.6.0
- 使用Image
- alpine
コンテナを作成する
docker run --name server -itd -p 8443:8443 alpine
コンテナ内にログインする
docker exec -it server /bin/ash
ashはalpineで使用されているシェル
必要なモジュールをインストールする
1.alpineのパッケージリポジトリから最新のインデックスを取得
apk update
2.Node.jsのインストール
apk add nodejs
3.npmのインストール
apk add npm
4.opensslのインストール(HTTPSの証明書作成に必要)
apk add openssl
作業用ディレクトリの作成
mkdir work
cd work
証明書ファイル(pfxファイル)の作成
openssl genrsa 2048 > mysslserver.key
openssl req -new -key mysslserver.key -subj "/C=JP/ST=Tokyo-to/L=Shibuya/O=Company Name/OU=IT dept./CN=Company Dept CA" > mysslserver.csr
openssl x509 -days 3650 -req -signkey mysslserver.key < mysslserver.csr > mysslserver.crt
openssl pkcs12 -export -inkey mysslserver.key -in mysslserver.crt > mysslserver.pfx
HTTPSサーバの作成
viで作成する。
https.js
https = require('https');
fs = require('fs');
port=8443;
https.createServer({pfx: fs.readFileSync('mysslserver.pfx')}, function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port);
console.log('Server running at port:' + port);
サーバの起動
node https.js
疎通確認
https:localhost:8443にアクセスしてHello Worldが表示されればOK
Author And Source
この問題について(Docker上に簡易HTTPSサーバを構築する(Node.js)), 我々は、より多くの情報をここで見つけました https://qiita.com/sndstudy/items/f7b183042adaa71d057f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .