本地开启https,配置nodeJs服务
服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥。客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此。
1. 公钥私钥的生成可用openssl(linux,mac自带,windows上需要自己安装)工具来生成,具体生成步骤如下:
// 生成服务器端私钥
$ openssl genrsa -out server.key 1024 //生成服务端公钥
$ openssl rsa -in server.key -pubout -out server.pem
如果只使用公钥/私钥,会面临一个问题,中间人攻击。在客户端与服务端呼唤公钥的过程中,中间人对服务端充当客户端,对客户端充当服务端的角色。服务端和客户端很难感受到中间人的存在。为了应对这种情况,还需要对得到的服务端公钥进行认证,确定这个公钥是来自你访问的网站。证书里包含了服务器的名称,主机名,服务端的公钥,签发证书机构的名称,来自签名颁发机构的签名。在客户端拿到公钥后会对签名的公钥进行检查是否来自目标服务器,这样避免中间人攻击,生成签名证书的过程如下,(需要用户输入的信息随便填写吧,偷懒的话可以一路敲回车)
2. 生成自签名证书
CA(Certificate Authority,数字证书认证中心)
CA的作用是为站点颁发证书,且这个证书有CA通过自己的公钥和私钥实现的签名。通过CA机构颁发证书耗时耗力(贵啊!!!淘宝有单域名证书。。。)。这里使用自签名证书,说白了就说自己扮演CA机构,给自己颁发证书。
//生成CA私钥
$ openssl genrsa -out ca.key 1024//生成csr文件
$ openssl req -new -key ca.key -out ca.csr//生成自签名证书
$ openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt//生成server.csr文件
$ openssl req -new -key server.key -out server.csr//生成带有ca签名的证书
$ openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
3. 使用express和https进行配置服务
const https = require('https');
const fs = require('fs');
const path = require('path');
const express = require('express')
const ip = require("address").ip()
const app = express();
app.use(express.static("./"))
const options = {key: fs.readFileSync(path.join(__dirname, 'ssl/server.key')),cert: fs.readFileSync(path.join(__dirname, 'ssl/server.crt')),
};
const server = https.createServer(options, app);
server.listen(3000, () => {console.log(`server is running at ${ip}:3000/vnc.html`)
})
使用chrome访问自签名网站会提示不安全(选择继续就行)
使用脚手架工具生成的代码把app.listen 转接到httsServer.listen就可以了(暂未找到其他方法直接生成使用https的脚手架)
相关文章:
本地开启https,配置nodeJs服务
服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥。客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此。 1. 公钥私钥的…...
项目中的svg图标的封装与使用
1.安装 npm install vite-plugin-svg-icons -D2.在vite.config.ts中配置 **所有的svg图标都必须放在assets/icons // 引入svg import { createSvgIconsPlugin } from vite-plugin-svg-iconsexport default defineConfig({plugins: [vue(),createSvgIconsPlugin({iconDirs: [p…...
文件服务器迁移
文件服务器迁移还是比较简单的 win server加域 导出配额文件 选中所有项,点击导出 导出共享文件夹权限列表 导出文件夹的权限表,留作备用。需要用到“icacls” icacls c:\windows\* /save aclfile /t # C:\Windows 目录及其子目录中所有文件的 DAC…...
虹科Pico汽车示波器 | 汽车免拆检修 | 2011款瑞麒M1车发动机起动困难、加速无力
一、故障现象 一辆2011款瑞麒M1车,搭载SQR317F发动机,累计行驶里程约为10.4万km。该车因发动机起动困难、抖动、动力不足、热机易熄火等故障进厂维修。用故障检测仪检测,发动机控制单元(ECU)中存储有故障代码“P0340相…...
深度学习之图像分类(十五)DINAT: Dilated Neighborhood Attention Transformer详解(一)
Dilated Neighborhood Attention Transformer Abstract Transformers 迅速成为跨模态、领域和任务中应用最广泛的深度学习架构之一。在视觉领域,除了对普通Transformer的持续努力外,分层Transformer也因其性能和易于集成到现有框架中而受到重视。这些模…...
和数集团出席中科院上海高研院第三十三期“高研交叉论坛”信息能源融合专场
2023年11月21日,中国科学院上海高等研究院第三十三期“高研交叉论坛”信息能源融合专场在上海高研院成功举办。本次论坛由中国科学院上海高等研究院智能信息通信技术研究与发展中心、中国科学院低碳转化科学与工程重点实验室、中科院和数智能区块链与能源系统应用联…...
GitHub----使用记录
一、上传文件到仓库 1、首先新建一个github仓库 然后先记住这一句指令 2、下载git工具 https://git-scm.com/downloads 下载工具安装不用运行 3、使用git工具上传文件并推送 找到你想上传的文件的位置,右击git Bush here git init :初始化这个仓…...
大数据平台/大数据技术与原理-实验报告--实战HDFS
实验名称 实战HDFS 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.10.23-2023.10.27 实验仪器设备以及实验软硬件要求 专业实验室(配有centos7.5系统的linu…...
C#中的事件(委托的发布和订阅、事件的发布和订阅、EventHandler类、Windows事件)
目录 一、委托的发布和订阅 1.订阅操作符号“"和取消订阅操作符号“-” 2.示例源码 二、事件的发布和订阅 三、EventHandler类 四、Windows事件 C#中的事件是指某个类的对象在运行过程中遇到的一些特定事情,而这些特定的事情有必要通知给这个对象的使用者…...
世微 舞台灯深度调光 大功率 dc-dc降压恒流驱动IC APS54083
产品描述 APS54083 是一款 PWM 工作模式,高效率、外围简单、外置功率 MOS 管,适用于 5-220V 输入高精度降压 LED 恒流驱动芯片。输出最大功率150W最大电流 6A。APS54083 可实现线性调光和 PWM 调光,线性调光脚有效电压范围 0.5-2.5V.PWM 调光频率范围 10…...
【nlp】3.3 Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层)
Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层) 2 编码器复现2.1 编码器介绍2.2 掩码张量2.2.1 掩码张量介绍2.2.2 掩码张量的作用2.2.3 生成掩码张量的代码实现2.2.4 掩码张量的可视化2.2.5 掩码张量总结2.3 注意力机制2.3.1 注意力计算规则的…...
vue3中shallowReactive与shallowRef
shallowReactive与shallowRef shallowReactive: 只处理了对象内最外层属性的响应式(也就是浅响应式) shallowRef: 只处理了value的响应式, 不进行对象的reactive处理 总结: reactive与ref实现的是深度响应式, 而shallowReactive与shallowRef是浅响应式。 什么时候用浅响应…...
蓝桥杯-动态规划-子数组问题
目录 一、乘积最大数组 二、乘积为正数的最长子数组长度 三、等差数列划分 四、最长湍流子数组 心得: 最重要的还是状态表示,我们需要根据题的意思,来分析出不同的题,不同的情况,来分析需要多少个状态 一、乘积最…...
CDA一级备考思维导图
CDA一级备考思维导图 第一章 数据分析概述与职业操守1、数据分析概念、方法论、角色2、数据分析师职业道德与行为准则3、大数据立法、安全、隐私 CDA一级复习备考资料共计七个章节,如需资料,请留言,概览如下图: 第一章 数据分析…...
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…...
Unity中Shader的BRDF解析(一)
文章目录 前言现在我们主要来看Standard的 漫反射 和 镜面反射一、PBS的核心计算BRDF二、Standard的镜面高光颜色三、具体的BRDF计算对于BRDF的具体计算,在下篇文章中,继续解析 四、最终代码.cginc文件Shader文件 前言 在上篇文章中,我们解析…...
《软件工程原理与实践》复习总结与习题——软件工程概述
软件 什么是软件? 程序数据配套文档 软件危机 概念 计算机软件的开发和维护过程中所遇到的一系列严重问题 表现 20世纪60年代中后期,大容量、高速度计算机的出现,使计算机应用范围增大,软件开发需求急剧增长 软件工程 背景 德国…...
acwing算法基础之动态规划--线性DP和区间DP
目录 1 基础知识2 模板3 工程化 1 基础知识 线性DP:状态转移表达式存在明显的线性关系。 区间DP:与顺序有关,状态与区间有关。 2 模板 3 工程化 题目1:数字三角形。 解题思路:直接DP即可,f[i][j]可以来…...
力扣 622.设计循环队列
目录 1.解题思路2.代码实现 1.解题思路 首先,该题是设计循环队列,因此我们有两种实现方法,即数组和链表,但具体考虑后,发现数组实现要更容易一些,因此使用数组实现,因此我们要给出头和尾变量&a…...
初识Linux(2).妈妈再也不用担心我Linux找不到门了。
文章目录 前言 1.man指令(重要):例如: 2.cp指令(重要):例如:把123.txt复制到a目录中类似window如下操作: 3.mv例如:类似window如下操作: 4.nano例…...
Conform与Valibot集成:轻量级Schema验证的完美选择
Conform与Valibot集成:轻量级Schema验证的完美选择 【免费下载链接】conform Progressively enhance HTML forms with React. Build resilient, type-safe forms with no hassle using web standards. 项目地址: https://gitcode.com/gh_mirrors/co/conform …...
数字人技术终极指南:从原理到实战应用全解析
数字人技术终极指南:从原理到实战应用全解析 【免费下载链接】awesome-digital-human Digital Human Resource: 2D/3D/4D Human Modeling, Avatar Generation & Animation, Clothed People Digitalization, Virtual Try-On, etc. 项目地址: https://gitcode.c…...
Lightpicture图床系统
LightPicture 是一款用于图片上传与托管展示的系统程序。用户可通过该系统搭建独立的图片存储与分发服务。核心用途将图片文件上传至服务器,并生成可供外部访问的链接地址。主要构成系统包含上传处理模块与前端展示界面,支持常见的图片格式文件。存储支持…...
中文新闻文本分类实战:从 TextCNN → BiLSTM → BERT 三档方案对比(附完整代码)
任务:中文新闻文本分类(如 THUCNews,10/14 类) 目标:给出可直接复现的三种主流方案,实现 对比1. 数据准备 以 THUCNews 为例(每行:label \t text) import torch from to…...
CCF中学生计算机程序设计(提高篇)电子版
->入门篇<- ->基础篇<- ->CSP-S核心讲义<- 这本书可以为C的同学提供帮助,都给你免费还不点赞关注 –>CCF中学生计算机程序设计(提高篇).pdf –>网页浏览 通过网盘分享的文件:代码源全套入门提高 链接…...
【AI Agent实战】OpenClaw Skill 技能系统详解:从 Function Calling 到 MCP 到 Skill 的完整演进
关键词:OpenClaw Skill、AI Agent技能、MCP协议、Function Calling、AI工作流一、为什么装完 OpenClaw 还是感觉"没用" 安装完 OpenClaw 之后,很多人反馈一个共同问题:跟直接用 ChatGPT 感觉差不多,没看到明显差异。 原…...
【CD4022八进制计数器脉冲分配器】2023-5-31
缘由CD4022可以连接成4进制吗? - 24小时必答区 脉宽调节 中医不用做胃镜,观察出口物颜色是否带血判断,检查表里可判断远近位置确诊,在表为近端,在里为远端,鲜红色为近端,暗黑色为远端,远端在胃…...
Qwen3.5-2B效果展示:漫画分镜图识别+剧情连贯性分析真实案例
Qwen3.5-2B效果展示:漫画分镜图识别剧情连贯性分析真实案例 1. 模型简介 Qwen3.5-2B是一款轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这款模型主打低功耗、低门槛部署,特别适配端侧和边缘设备&a…...
Go Command 工作组成立:这几个用了十年的命令可能要被废!
大家好,我是Tony Bai。在这个技术浪潮汹涌的时代,Go 语言以其惊人的稳定性和向后兼容性著称。但稳定,并不代表停滞。就在最近,Go 核心团队内部悄然发生了一件大事:他们正式成立了一个全新的 “Go Command 工作组&#…...
MeteorSeed潮
这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...
