如何在Node.js中使用HTTPS

j5fpnvbx  于 9个月前  发布在  Node.js
关注(0)|答案(2)|浏览(106)

我对HTTPS、SSL等没有什么经验。
我想知道如何使用Node.js与HTTPS.我知道如何使用node.js罚款,但当使用HTTPS它给出错误.
我想我需要安装一些东西(openSSL?).我想被告知所有的东西,我必须安装在windows 8.1计算机(不,我不想得到任何形式的Linux.没有cygwin要么),为了使用node.js HTTPS服务器.
我不需要付费证书,我只需要让它工作。它不接收来自浏览器的请求,所以我不关心付费证书。

insrf1ej

insrf1ej1#

一旦你的系统上安装了node.js,只需按照下面的过程来获得一个基本的Web服务器运行支持HTTP和HTTPS!

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

1.创建文件夹,你想存储你的密钥和证书:
第一个月
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

第二步:将证书安装为根证书

1.将证书复制到根证书文件夹中:
sudo cp ca-cert.pem /usr/local/share/ca-certificates/ca-cert.pem
1.更新CA存储:
sudo update-ca-certificates

第三步:启动节点服务器

首先,确保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

ca1c2owp

ca1c2owp2#

2022答案

1.让你的node.js服务器在端口80上使用HTTP
1.使用DNSMap<YourWebsite.com>到服务器
1.使用https://certbot.eff.org将服务器升级到HTTPS
在第3步中,您下载并在服务器上运行Certbot应用程序。Certbot要求“YourWebsite.com“。然后它会向您颁发新的HTTPS证书,并修补您的服务器配置文件以使用HTTPS证书。
比如说,我的节点服务器在AWS EC2中运行,侦听端口3000。我发现Ubuntu比Amazon自己的Linux更容易配置。我使用AWS Route53将域名Map到具有静态弹性IP地址的EC2示例。我在EC2中安装了Nginx,以将客户端的端口80请求Map到端口3000上的服务器。Certbot自动修补Nginx配置文件,使用新的HTTPS证书。

**Certbot很简单。**这是因为Certbot在您的服务器上运行,因此HTTPS证书颁发机构(LetsEncrypt)可以通过在互联网上与Certbot交谈来验证您是否控制域名。

相关问题