[Node.js] 在Windows10上创建一个使用自签名证书进行SSL通信的Web服务器
首先
因为我经常忘记,所以这是关于创建Windows10上SSL通信Web服务器的备忘录。
所需之物 (suo1 xu1 zhi1 wu4)
-
- Windows10
Webサーバ構築する
nodejsインストール済
nodejs : v12.13.1
npm : 6.13.4
ラズパイ
オレオレ証明書(SSL証明書)を作る
制作个人证明书
$ 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
创建一个网站
$ mkdir hoge
$ cd hoge
$ npm init
$ npm install express --save
$ mkdir ssl
$ mkdir wwwroot
$ touch wwwroot/test.html
$ touch app.js
※ 在ssl目录下复制自签证书。
PS C:\Users\user\nodejs\hoge> tree /f
フォルダー パスの一覧: ボリューム Local Disk
ボリューム シリアル番号は XXXX-XXXX です
C:.
│ app.js
│ package-lock.json
│ package.json
│
│
├─node_modules
│ ・・略・・
│
├─ssl
│ server.crt
│ server.csr
│ server.key
│
└─wwwroot
test.html
<!DOCTYPE html>
<html>
<head><title>TEST</title></head>
<body>Test</body>
</html>
"use strict";
var express = require("express");
var app = express();
app.use(express.static("wwwroot"));
app.get("/", function(req, res) {
res.sendFile("wwwroot/index.html");
});
let port1 = 3000;
let port2 = 3001;
// http サーバ
var http = require("http").Server(app);
http.listen(port1,function(){
console.log("\tサーバがポート%dで起動しました。モード:%s",port1,app.settings.env)
});
// https サーバ
var fs = require("fs");
var opt = {
key: fs.readFileSync("ssl/server.key"),
cert: fs.readFileSync("ssl/server.crt"),
passphrase: "password", // オレオレ証明書でのパスワードを書く
};
var https = require("https").Server(opt, app); // https サーバを立てる
https.listen(port2,function(){
console.log("\tサーバがポート%dで起動しました。モード:%s",port2,app.settings.env)
});
确认行动
PS C:\Users\user\nodejs\hoge> pwd
Path
----
C:\Users\user\nodejs\hoge
PS C:\Users\user\nodejs\hoge> node app.js
サーバがポート3000で起動しました。モード:development
サーバがポート3001で起動しました。モード:development
只要能够在浏览器中访问以下网站,就算成功。
-
- http://localhost:3000/test.html
- https://localhost:3001/test.html