NODEJS HTTPS

基于Node.js Express搭建Https服务器 内容:1、安装Node.js2、安装Express和express-generator3、利用express-generator生成新项目4、生成SSL证书5、将项目从http转换为https关键词:Node.js,Express,Https,EJS,SSL证书                                                         1、安装Node.js(... 阅读详情

1. Http与Https

介绍

  • HTTP: 超文本传输协议 (Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
  • HTTPS:(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

区别

  • https协议需要到ca申请证书,一般免费证书很少,需要交费。
  • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2. 使用Express创建Https服务器

在Nodejs中,我们可以通过内置的https库,来实现HTTPS服务器。

  • 首先,我们需要利用openssl生成证书文件:
#生成私钥key文件
openssl genrsa 1024 > /path/to/private.pem
//
#通过私钥文件生成CSR证书签名
openssl req -new -key /path/to/private.pem -out csr.pem
//
#通过私钥文件和CSR证书签名生成证书文件
openssl x509 -req -days 365 -in csr.pem -signkey /path/to/private.pem -out /path/to/file.crt

新生成了三个文件:

  • private.pem: 私钥
  • csr.pem: CSR证书签名
  • file.crt: 证书文件
  • 修改Nodejs启动文件server.js:
var app = require('express')();
var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('/path/to/private.pem', 'utf8'),
var certificate = fs.readFileSync('/path/to/file.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
var PORT = 18080;
var SSLPORT = 18081;

httpServer.listen(PORT, function() {
    console.log('HTTP Server is running on: http://localhost:%s', PORT);
});
httpsServer.listen(SSLPORT, function() {
    console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);
});

// Welcome
app.get('/', function(req, res) {
    if(req.protocol === 'https') {
        res.status(200).send('Welcome to Safety Land!');
    }
    else {
        res.status(200).send('Welcome!');
    }
});
  • 启动服务器:
    $ node server.js
    HTTP Server is running on: http://localhost:18080
    HTTPS Server is running on: https://localhost:18081
  • 打开浏览器

HTTP访问:


HTTP访问

HTTPS访问:


HTTPS访问

查看证书:


查看证书

由于我们证书是自己创建的,没有经过第三方机构的验证,所以会出现警告的提示。有条件的可以去godaddy SSL Cert官网申请,当然挺贵的,免费党就选择了WoSign,也是可以的,详情见[https://weixin.frankfan.me]。


WoSign验证证书


至此,我们成功的利用Nodejs内置https和express创建了HTTPS服务器。

参考:
http://blog.fens.me/nodejs-https-server/
http://heyrod.com/snippet/s/node-https-ssl.html

详解NodeJS Https HSM双向认证实现 工作中需要建立一套HSM的HTTPS双向认证通道,即通过硬件加密机(Ukey)进行本地加密运算的HTTPS双向认证,和银行的UKEY认证类似。 NodeJS可以利用openSSL的HSM plugin方式实现,但是需要编译C++,太麻烦,作者采用了利用Node Socket接口,纯JS自行实现Https/Http协议的方式实现 具体实现可以参考如下 node-https-hsm TLS规范自然是参... 阅读详情

相关推荐

Claude code-review 插件深度解析:AI 驱动的智能代码审查系统

Claude Code Review 插件深度解析:AI 驱动的智能代码审查系统 该插件通过多 Agent 并行工作方式自动审查 PR,采用置信度评分机制(80+分保留)过滤误报,确保高质量反馈。核心功能包括: 5个专业化 Agent 并行审查(规范合规性、bug检测、历史分析等) 8步工作流程:从资格检查到 GitHub 评论发布 创新性置信度评分系统(0-100分),严格过滤7类误报 结合 CLAUDE.md 规范和历史 PR 评论实现一致性审查 技术亮点: 多 Agent 架构(Haiku/Sonne

虚心若愚 2262

Nodejs+Express创建HTTPS服务器

为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下。(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协议 (Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTPS:(Hype

琥珀君的博客 5317

ST MotorControl Workbench 6.2.1 自定义硬件配置避坑指南

本文详细介绍了ST MotorControl Workbench 6.2.1在自定义硬件配置中的常见问题与解决方案,涵盖功率板配置、采样电路校准、电机参数设置及代码生成避坑指南,帮助开发者高效完成电机控制项目开发。

red88的博客 1023

Nodejs + express + https模块在本地创建https服务

我们可以安装openssl,也可以不安装,我们可以直接使用git自带的openssl。完成上面的命令会在bin目录下生成三个文件。下次访问就不会出现问题了。

akwu_的博客 1640

CUBEMX ADC 单/多通道+DMA

本文使用的是STM3F103C8T6 Cubemx进行单/多通道DMA配置。

记录学习 1401

3台虚拟机部署Doris详细文档(含校验步骤)

摘要:本文详细介绍了Apache Doris在3台虚拟机上的集群部署方案。采用1主FE+1从FE+1观察者FE+3BE的混合部署模式,确保元数据高可用性。硬件配置建议测试环境4核16GB内存,生产环境8核64GB内存。部署步骤包括系统环境配置(关闭防火墙、内核参数优化)、FE/BE节点配置启动、集群初始化验证等。重点配置了IP白名单(172.30.0.115)和数据目录(/data/doris)。通过MySQL客户端和WebUI可监控集群状态,实现千万级数据的实时分析能力,后续可通过增加BE节点线性扩展。

weixin_41026747的博客 931

【小沐学前端】Node.js搭建HTTPS 服务器

HTTPS是什么?HTTPS是基于TLS/SSL的HTTP协议。HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。

爱看书的小沐 7550

打开.nc降水气象数据制作年降水量地图

图层的单位为度,在反距离插值中也是以度为单位,比较麻烦,还是想用以m为单位的投影,这里是个bug,后续调整一下。该彩色部分是以2021年1月、2月、3月的降水数据分别作为RGB得到。因为该栅格的分辨率还是太大了,一个栅格就能覆盖一个县,若想要进行降尺度,可以做插值处理。下载的数据集为2021-2022年,因此有12+12=24个月,24个波段。想要得到廊坊市周围的数据,需要裁剪范围,在降水数据图层上导出数据。打开数据管理工具-投影和变换-定义投影。在降水数据图层上右击属性,添加投影。得到了降尺度的插值图。

所有专家都曾始于新手 4518

nodejs开发给express配置https服务器

在nodejs中使用express可以快速搭建起web框架,但默认是http协议访问,这对于小绿锁爱好者的我当然是无法忍受的。毕竟https已经成为了主流。本篇文章会给大家介绍如何给express框架中的项目配置https服务,让用户可以通过浏览器使用https进行访问 一、安装express(已安装node环境) 1.安装express npm install express...

weixin_30794491的博客 698

使用libVLC进行视频截图的C/C++实现

通过这些代码,你可以在C/C++应用程序中实现视频截图功能,并将视频帧保存为图像文件。请注意,本文只提供了基本的示例代码,你可以根据自己的需求进行扩展和修改。libVLC是一个强大的开源多媒体框架,可以用于在C/C++应用程序中处理和播放音频和视频文件。我们将展示如何初始化libVLC,打开视频文件,捕获视频帧并保存为图像文件。在开始编写代码之前,你需要包含libVLC的头文件,并链接相应的库文件。在链接阶段,你需要添加libVLC库的链接选项。在使用libVLC之前,你需要初始化libVLC的实例。

学习使你进步。 470

Scrapy爬虫之热门网站数据爬取--------第2关

第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r

weixin_44949187的博客 2835

nodejs使用axios代理https失败的解决方案

nodejs使用axios代理https失败的解决方案 2010/11/12 前言 在node环境下做些简单的爬虫时,需要用代理地址,如果访问的目标站点 是https协议,用axios就会有些问题 解决方法 1.使用tunnel隧道代理 node-tunnel – 用于HTTP/HTTPS的隧道代理 具体参考(tunnel)[https://www.npmjs.com/package…] 安装npm install tunnel 使用 const axios = require('a

小J的博客 4884

华为OD面试八股真题 - 操作系统 - 1

华为OD技术面,操作系统相关八股真题提供详细解答,这篇博客主要涉及于进程和线程相关知识点

qq_45776114的博客 1631

nodejs+express添加https模块

环境:windows10 自测使用 首先安装OpenSSL我使用的是64位的在这里可以下载 链接:https://pan.baidu.com/s/1bYieb67kNIxz9rK5Lqt3HA 提取码:4apa 接下来是如何生成和代码: 1.进入C:\OpenSSL-Win64\bin>下 2、生成RSA密钥的方法 openssl genrsa -des3 -out private.pem ...

d81895606的博客 2002

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

nodejs创建https

https的免费申请流程 这篇文章包含3个主要内容: 如何用nodejs创建https服务器; 如何免费申请到ssl证书; nginx如何设置https服务器。 如果想了解https原理部分,可以查看之前的文章介绍htts原理 1、用Nodejs创建HTTPS服务器 在Nodejs中,我们可以通过内置的https库,来实现HTTPS服务器。Nodejs的HTTPS使用文档...

ronon77的专栏 210

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NodeJS如何发送HTTPS请求

微信的接口都使用HTTPS协议,使用NodeJS需创建HTTPS对象. 详细使用参考官网文档https://nodejs.org/api/https.html 代码如下: var https = require("https"); var iconv = require("iconv-lite"); var url="https://api.weixin.qq.com/sns/o

银狐的专栏 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NodeJS Socket.io 改https访问

原http访问 var io = require('socket.io')(6545); 改https访问 var https = require('https'), fs = require('fs'); var options = { key: fs.readFileSync('test.key'), cert: fs.readFileSync('test.crt'), }; var app = htt

君陌礼的博客 1507

NodeJS Https HSM双向认证实现

Intro 工作中需要建立一套HSM的HTTPS双向认证通道,即通过硬件加密机(Ukey)进行本地加密运算的HTTPS双向认证,和银行的UKEY认证类似。 NodeJS可以利用openSSL的HSM plugin方式实现,但是需要编译C++,太麻烦,作者采用了利用Node Socket接口,纯JS自行实现Https/Http协议的方式实现 具体实现可以参考如下node-https-hsm TLS规...

weixin_33994444的博客 556

使用 nodejs 开启 HTTPS 443端口服务

【代码】使用 nodejs 开启 HTTPS 443端口服务。

TimBL_的博客 763

记一次nodejs的https调用问题

记一次nodejs的https调用问题 关键字:nodejs、https、ssl,前端、后端 【问题描述】: -前端和后端都使用nodejs, -都是httpsserver -前端调用后端,使用axio发起请求, 因为请求URL为https路径,结果总是报ERR_CERT_AUTHORITY_INVALID错误. 浏览器日志如下: Failedtoloadresource:net::ERR_CERT_AUTHORITY_INVALID 问题出现了,发起冲锋...

coobee的博客 1052

Nodejs创建https服务器(Windows 7)

Windows 7下使用Nodejs创建https服务器

安晓辉生涯——聚焦程序员的职业规划与成长 6670

HTTPS 的原理和 NodeJS 的实现

基本原理 HTTP协议采用明文传输数据,当涉及敏感信息的传送时,极有可能会受到窃听或者中间人的攻击。HTTPS是HTTP与SSL/TLS的组合,即使用加密通讯以及网络服务器的身份鉴定来进行信息的安全传输。其核心有二: 使用证书对服务器及请求端的身份验证 使用一组对称秘钥加密包括请求头在内的所有信息传输 握手流程 HTTPS链接的...

weixin_33736832的博客 126

iOS + Nodejs SSL/Https双向认证

移动互联网的大力发展,安全越来越重要。什么是双向认证呢?双向认证就是客户端要验证服务器的合法性,同时服务器也要验证客户端的合法性。这样双方都相互验证,提高安全性。 关于SSL的原理我也不表了,因为google一下,有一大堆原理介绍。 本人花时间做了一个iOS + NodeJS SSL/Https的双向认证功能。需要的朋友可以到这儿获取。 本团队提供强有力的售后技术支持,如您需

Care iOS技术团队 3054

Nodejs https请求

Nodejs https请求 一.为什么用https请求 在跟网络交互时,我们往往会想到HTTPS协议,因为它增加了数据加密,更安全,在数据进行传输之前,对数据进行加密,然后再发送到服务器。 http 模块和 https 模块 比较 http :由 http、TCP、ip 组成 https:由 http、SSL/TLS、TCP、ip 组成 https 是基于 SSL 和 TLS 的 http ...

xiaoqiqi9741的博客 4953

在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)

在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs) 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs) 第一步 指定版本源 执行 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - setup_8.x 需要安装的版本号,替换数字就行。 vu...

ankuailan3925的博客 190

基于ubuntu 22.04搭建nodejs https服务器

前面搭建的http服务器就是学习用的,不太安全啦,这次我们直接大家个带s(Secure),话不多说,开整!

Ziwubiancheng的博客 1773
上一篇: 南门口Blues
Time-Traveller
博客等级 码龄18年 2粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值