Nodejs+Express搭建HTTPS服务

news/2024/7/12 3:24:06 标签: express, https, 网络协议

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

生成自签名证书

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

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

openssl genrsa -out server.key 2048

生成证书请求

openssl req -new -key server.key -out server.csr

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

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

https_24">使用nodejs的https模块

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

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


http://www.niftyadmin.cn/n/5282757.html

相关文章

模式识别与机器学习(九):Adaboost

1.原理 AdaBoost是Adaptive Boosting(自适应增强)的缩写,它的自适应在于:被前一个基本分类器误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在…

pyqt/pyside界面开发——第一章pyqt/pyside编程基础——AI赋能制作页面

环境安装:https://www.bilibili.com/video/BV1wc411D7WF/ pyside 窗口运行机理 用面向对象来理解整个类 继承关系: 这个图对应的是qtdesigner 里面的拖对拽的对象, 你拖拽的图标其实就是对象。 AI赋能 prompt: 直接问他,我需要实现某个功能需要拖拽哪些控件? 它会把控…

java八股 设计模式

企业场景篇-03-设计模式-工厂设计模式-工厂方法模式_哔哩哔哩_bilibili 1.简单工厂模式 新加咖啡类的时候需要在唯一的那个工厂类里加代码,这样就耦合了 2.工厂模式 相对于简单模式的一个工厂生产所有咖啡,这里只定义了一个抽象咖啡工厂,然…

SQL变更评审常见问题分享

SQL变更评审分享 概述 SQL变更,是我们在开发迭代中不可避免的场景,SQL变更通常是指DDL和DML语句变更,这些sql会影响到数据库表结构或具体数据,变更时如果执行到存在问题的sql脚本,会对实际应用操作难以评估的损失&…

(C)一些题15

1.下列关于 C 语言程序结构的说法中,不正确的是(D) A .一个程序由一个或多个源程序文件组成 B .函数是 C 程序的主要组成部分 C .程序总是从 main 函数开始执行的 D . C 语言本身提供了许多输入输出语句 解析&…

CSS新手入门笔记整理:CSS3动画

平移:translate() 语法 transform: translateX(x);    /*沿x轴方向平移*/ transform: translateY(y);    /*沿y轴方向平移*/ transform: translate(x, y);   /*沿x轴和y轴同时平移*/ 缩放:scale() 语法 transform: scaleX(x);    /*沿x轴…

Java 21和Spring Boot 3.2增强监控可观察

本文介绍了Spring Boot 3.2和Java 21中增强的可观察性支持。 通过利用Java 21和Spring Boot 3.2的高级功能,开发人员可以增强系统的可观察性,有效监控各种指标和日志。 Java 21还引入了虚拟线程和结构化并发,从而使可观察性更加简单清晰。 …

MySQL代码笔记

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻表的增删查改创建表格&…