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

相关推荐
sweet丶1 小时前
iOS开发必备的HTTP网络基础概览
网络协议·ios
00后程序员张3 小时前
python 抓包在实际项目中的合理位置,结合代理抓包、设备侧抓包与数据流分析
android·ios·小程序·https·uni-app·iphone·webview
是娇娇公主~4 小时前
HTTPS【密钥交换+证书校验】流程讲解
网络·网络协议·面试·https·ssl
北京耐用通信7 小时前
告别“蜘蛛网”接线!耐达讯自动化PROFIBUS 三路集线器让气缸布线“一拖三”的神操作
人工智能·物联网·网络协议·自动化·信息与通信
小于晏7 小时前
基于Socket实现的主流网络协议汇总
网络·网络协议
阿华hhh8 小时前
Linux系统编程(网络udp)
linux·服务器·c语言·网络·网络协议·udp
HansenPole8258 小时前
元编程笔记
笔记·网络协议·rpc
星哥说事9 小时前
SSL/TLS 证书管理,文件与数据库加密技术
数据库·网络协议·ssl
不知道累,只知道类9 小时前
[故障复盘] 生产环境 HTTP 连接池耗尽导致的“服务假死”分析
网络·网络协议·http
自由生长202410 小时前
计算机网络-从CGI 到 Unix Domain Socket:理解 Web 服务背后的进程通信演进
网络协议