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

相关推荐
3***499611 分钟前
前端WebSocket教程,实时通信案例
网络·websocket·网络协议
2503_9284115618 分钟前
11.11 Express-generator和文件上传和身份认证
数据库·node.js·express
雪芽蓝域zzs4 小时前
uni-app 将 base64 图片编码转为 Blob 本地文件路径
网络协议·udp·uni-app
Eloudy6 小时前
节点内 cuda GPU 之间 P2P IPC 通信的硬件机制参考
网络协议·p2p
atsec7 小时前
atsec完成Newland NPT的P2PE PA评估
服务器·网络协议·npt·p2pe
奥吼吼~~8 小时前
标准输入输出stdio和JSON-RPC
网络协议·rpc·json
我命由我123459 小时前
Java 开发 - 粘包处理器 - 基于消息头 + 消息体(魔数验证、长度验证)
java·网络·后端·网络协议·java-ee·intellij-idea·intellij idea
小糖学代码9 小时前
网络:5.应用层协议HTTP
网络·网络协议·http
liu****12 小时前
18.HTTP协议(一)
linux·网络·网络协议·http·udp·1024程序员节
赖small强13 小时前
【ZeroRange WebRTC】KVS WebRTC 示例中的 HTTP 通信安全说明
https·webrtc·tls·aws sigv4·信道安全·时间与重放控制