Nodejs+Express搭建HTTPS服务

最近开发需要搭建一个https的服务,正好最近在用nodejs和express,于是乎想到就近就使用这两东西来搭建一个https的服务吧。这里搭建过程总共需要两步,第一步生成证书,第二步使用https模块启动服务。

生成自签名证书

这里因为是自己开发测试使用,因此就简单点使用自签名证书了。

使用 openssl 命令生成服务器私钥文件

shell 复制代码
openssl genrsa -out server.key 2048

生成证书请求

shell 复制代码
openssl req -new -key server.key -out server.csr

根据私钥和证书请求生成证书

shell 复制代码
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

使用nodejs的https模块

创建一个express项目(可以参考express官方文档),修改 app.js 文件,主要是问最后几行创建 https server部分。

shell 复制代码
var express = require('express');
var path = require('path');
var http = require('http');
var https = require('https');
var fs = require('fs');

var app = express();

app.get('/', function(req, res, next) {
  res.send('hello world');
});

var httpServer = http.createServer(app);
httpServer.listen(9080);

const options = {
  key: fs.readFileSync('./server.key'),
  cert: fs.readFileSync('./server.crt')
};
var httpsServer = https.createServer(options, app);
httpsServer.listen(9443);

测试

使用 "node app.js" 或 "npm start" 启动服务,然后访问 https://localhost:9443 进行验证。

相关推荐
w***74174 小时前
使用Node.js搭配express框架快速构建后端业务接口模块Demo
node.js·express
ZeroNews内网穿透4 小时前
ZeroNews IP 访问控制能力
服务器·网络·网络协议·tcp/ip·安全·web安全·小程序
车载测试工程师4 小时前
CAPL学习-DoIP测试仪配置函数
网络协议·以太网·capl·canoe·doip
悠悠1213810 小时前
NLB WebSocket 连接问题排查与解决方案
websocket·网络协议·php
Macbethad11 小时前
基于WPF的Ethernet/IP主站程序技术方案
网络协议·tcp/ip·wpf
岁岁种桃花儿12 小时前
HTTPS 比 HTTP 安全的核心原因:加密与身份验证机制解析
安全·http·https
ganshenml12 小时前
【Web】证书(SSL/TLS)与域名之间的关系:完整、通俗、可落地的讲解
前端·网络协议·ssl
xu_yule13 小时前
网络和Linux网络-5(应用层)HTTP协议(方法+报头+状态码)
linux·网络·网络协议·http
西幻凌云14 小时前
了解计算机网络的“物理根基”——物理层与数据链路层
网络·网络协议·计算机网络·数据链路层·物理层
2301_8049475816 小时前
nginx的https的搭建
运维·nginx·https