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 进行验证。

相关推荐
老蒋新思维9 小时前
创客匠人峰会洞察:私域 AI 化重塑知识变现 —— 创始人 IP 的私域增长新引擎
大数据·网络·人工智能·网络协议·tcp/ip·创始人ip·创客匠人
北京盟通科技官方账号13 小时前
Ixxat Mobilizer系列:助力汽车组件的高效下线测试
网络协议·机器人·自动化·汽车·制造
此生只爱蛋14 小时前
【Linux】TCP机制
网络·网络协议·tcp/ip
北京耐用通信14 小时前
为安全加码,为效率提速:耐达讯自动化Ethernet/IP转DeviceNet电力自动化连接的可靠选择
人工智能·物联网·网络协议·自动化·信息与通信
老蒋新思维15 小时前
创客匠人峰会实录:AI 赋能 IP 定位破局 —— 创始人知识变现的差异化增长路径
网络·人工智能·网络协议·tcp/ip·数据挖掘·创始人ip·创客匠人
橘子真甜~15 小时前
C/C++ Linux网络编程11 - 数据加密与https协议
linux·服务器·网络·http·https·密码学·加密解密
韩凡16 小时前
网络协议(浅见)
网络·网络协议
abcefg_h16 小时前
Cookie,Session的介绍和如何保持TCP连接
网络·网络协议·tcp/ip·golang
渡我白衣17 小时前
Select的优化:poll
开发语言·网络·c++·人工智能·网络协议·tcp/ip·网络安全
老蒋新思维18 小时前
创客匠人启示录:组织 AI 化赋能知识变现 —— 创始人 IP 的规模化增长新范式
网络·人工智能·网络协议·tcp/ip·知识付费·创始人ip·创客匠人