我对HTTPS、SSL等没有什么经验。我想知道如何使用Node.js与HTTPS.我知道如何使用node.js罚款,但当使用HTTPS它给出错误.我想我需要安装一些东西(openSSL?).我想被告知所有的东西,我必须安装在windows 8.1计算机(不,我不想得到任何形式的Linux.没有cygwin要么),为了使用node.js HTTPS服务器.我不需要付费证书,我只需要让它工作。它不接收来自浏览器的请求,所以我不关心付费证书。
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.pem和ca-cert.pem中的证书颁发机构,让我们为服务器生成一个私钥:openssl genrsa -out key.pem 4096个1.抓取这个server.cnf文件作为配置快捷方式:wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf1.使用此配置生成证书签名请求: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个
cd conf
ca.cnf
wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf
openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem
ca-key.pem
ca-cert.pem
openssl genrsa -out key.pem 4096
server.cnf
wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf
openssl req -new -config server.cnf -key key.pem -out csr.pem
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个
sudo cp ca-cert.pem /usr/local/share/ca-certificates/ca-cert.pem
sudo update-ca-certificates
首先,确保server.js的代码看起来像这样:
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个
cd /path/to
node server.js
ca1c2owp2#
1.让你的node.js服务器在端口80上使用HTTP1.使用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交谈来验证您是否控制域名。
2条答案
按热度按时间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.pem
和ca-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
的代码看起来像这样:字符串
1.转到您的
server.js
所在的目录:cd /path/to
个1.运行
server.js
:node server.js
个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交谈来验证您是否控制域名。