[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
广告
将在 10 秒后关闭
bannerAds