gpt4 book ai didi

node.js - 如何在 Node.js 中使用 HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:57 25 4
gpt4 key购买 nike

我对 HTTPS、SSL 等几乎没有经验。

我想知道如何将 Node.js 与 HTTPS 结合使用。我知道如何很好地使用 node.js,但是在使用 HTTPS 时会出错。

我想我需要安装一些东西(openSSL?)。我想知道我必须在 Windows 8.1 计算机上安装的所有东西(不,我不想获得任何形式的 linux。也没有 cygwin),以便使用 node.js HTTPS 服务器。

我不需要付费证书,我只需要让它发挥作用。它不接收来自浏览器的请求,所以我不关心付费证书。

最佳答案

在您的系统上安装了 node.js 后,只需按照以下步骤操作即可运行支持 HTTP 和 HTTPS 的基本 Web 服务器!

第 1 步:建立证书颁发机构

  1. 创建您要存储 key 和证书的文件夹:

    mkdir conf


  1. 转到那个目录:

    cd conf


  1. 获取此 ca.cnf 文件以用作配置快捷方式:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf


  1. 使用此配置创建一个新的证书颁发机构:

    openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem


  1. 现在我们在 ca-key.pemca-cert.pem 中有了我们的证书颁发机构,让我们为服务器生成一个私钥:

    openssl genrsa -out key.pem 4096


  1. 获取此 server.cnf 文件以用作配置快捷方式:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf


  1. 使用此配置生成证书签名请求:

    openssl req -new -config server.cnf -key key.pem -out csr.pem


  1. 签署请求:

    openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password"-in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert. pem


第 2 步:将您的证书安装为根证书

  1. 将您的证书复制到您的根证书文件夹:

    sudo cp ca-crt.pem/usr/local/share/ca-certificates/ca-crt.pem


  1. 更新 CA 存储:

    sudo update-ca-certificates


第 3 步:启动 Node 服务器

首先,确保您的 server.js 代码看起来像这样:

var http = require('http');
var https = require('https');
var fs = require('fs');

var httpsOptions = {
key: fs.readFileSync('/path/to/HTTPS/server-key.pem'),
cert: fs.readFileSync('/path/to/HTTPS/server-crt.pem')
};

var app = function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}

http.createServer(app).listen(8888);
https.createServer(httpsOptions, app).listen(4433);
  1. 转到server.js 所在的目录:

    cd/path/to


  1. 运行 server.js :

    node server.js

关于node.js - 如何在 Node.js 中使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com