位置: 编程技术 - 正文

详解HTTPS 的原理和 NodeJS 的实现

编辑:rootadmin

推荐整理分享详解HTTPS 的原理和 NodeJS 的实现,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

基本原理

HTTP协议采用明文传输数据,当涉及敏感信息的传送时,极有可能会受到窃听或者中间人的攻击。HTTPS是HTTP与SSL/TLS的组合,即使用加密通讯以及网络服务器的身份鉴定来进行信息的安全传输。其核心有二:

使用证书对服务器及请求端的身份验证 使用一组对称秘钥加密包括请求头在内的所有信息传输

握手流程

HTTPS链接的建立过程中涉及到服务器端证书、客户端证书(可选)、服务器端的非对称秘钥以及后续通信过程中使用的对称秘钥几个内容。

客户端对HTTPS的地址发出请求,并且将自己的SSL版本号等信息发送给服务器 服务器接收到请求,将服务器证书和公钥等信息返回给客户端 客户端接收到证书后向证书颁发机构验证证书的合法性。如果证书不合法(比如自行签发的证书),则向用户发出警告并确认是否继续,用户可以选择在此时离开终止HTTPS的链接。 证书合法或客户端确认在不安全的情况下继续,客户端生成pre-master secret并且使用2中收到的服务器公钥加密后发送给服务器。如果是使用交互策略的TLS,则同时需要将客户端的证书发送给服务器。服务器检查客户端的证书颁发机构是否在信任列表中,以及证书内容是否合法。若不合法,结束本次会话。 服务器使用私钥解密pre-master secret,然后双方通过一种实现商定好的加密算法生成本次通讯使用的master secret。 双方互相通知对方本次SSL握手成功,其后均使用master secret对传输内容进行加密。

下图简要的说明了这个流程的实现。

详解HTTPS 的原理和 NodeJS 的实现

一开始我也心存疑问:为什么要单独使用另外一组对称秘钥来实现对信息的加密而不直接使用服务器和客户端双方的非对称秘钥呢?我自身非常认同下面这个回答的解释:

传输过程使用对称密钥是因为对称加密比非对称加密的运算量低一个数量级以上,所以这样的方式可以提高双方会话的运算速度。

对于加密算法不是非常了解,希望大牛指点一二。

Openssl自签名证书的生成

HTTPS中一个关键就是证书文件。当然我们可以找专业的第三方机构签发。自己玩玩的话就用自签名的证书就可以了,用户在访问的时候则需要确认安全性问题。 1、生成传输pre-master secret的时候所需要的Server端的私钥,运行时提示需要输入密码,用于对key的加密。以后每次读取此文件的时候,都需要输入指令。

最终在建立HTTPS链接中使用的文件是

server.crt server.key

NodeJS建立一个HTTPS的Server

这里使用的fs.readFileSync方法会阻塞其他进程直到文件的读取完毕,在读取关键的配置文件的时候这样的方法是比较适宜的。

标签: 详解HTTPS 的原理和 NodeJS 的实现

本文链接地址:https://www.jiuchutong.com/biancheng/382135.html 转载请保留说明!

上一篇:详解node如何让一个端口同时支持https与http(node使用)

下一篇:nodejs模块学习之connect解析(nodejs基础教程)

  • 什么是抄报税成功
  • 企业税申报的三种方式
  • 进项税和销项税怎么理解
  • 本年利润需要毎月转入未分配利润吗
  • 小规模纳税人销售自建不动产
  • 小规模纳税人给个人怎么开发票
  • 新入职员工哪月交社保
  • 收到赠送的商品并销售
  • 怎么从营业执照上看是不是一般纳税人
  • 企业有利润要交什么税
  • 话费充值发票可以入账吗
  • 个人股权激励收入申报
  • 出售未计提完折旧的固定资产
  • 超市购物卡购物刷卡显帐号吗
  • 小企业周转材料报废残值回收应计入管理费用
  • 专项维修资金的,由县级
  • 利润表中所得税怎么算
  • 国际货运代理免税备案取消了吗
  • 基本户发工资要交社保吗
  • 国家税务局定额发票验证
  • 股票期权所得税率
  • 企业外购材料的入账价值包括
  • 抵扣进项税有期限吗
  • 地方教育费附加的会计分录
  • 无形资产管理费用不计入
  • 实物福利计入工资总额
  • 本年利润在借方表示什么意思
  • 预提差率费怎么记账
  • 个人如何开专票
  • win10系统还原会删除其他盘的文件吗
  • 企业预缴电费会退回吗
  • 稽查补交的税款怎么处理
  • 小规模纳税人无法开具增值税专用发票
  • 成本核算怎么核算
  • phpcookie
  • 旧货回收增值税率是多少
  • 税控系统的维护包括哪些内容
  • 建筑业预缴增值税
  • yolov5添加注意力机制真的有用吗?
  • 安装运行所需环境怎么填
  • php二维数组foreach
  • 长期借款的核算分为哪三个阶段
  • python PyQt5如何实现窗口功能
  • html元素一般分为哪几类
  • 事业单位银行开户规定
  • 请培训老师的费用怎么处理
  • 小微企业免税额按1%还是3%确认收入
  • 房租没发票怎么入账
  • 暂时进境货物如何申报
  • 普通的收据可以入账吗
  • 无法收回的应收账款怎么做分录
  • 企业固定电话费收费标准
  • 应交税费期末余额在借方怎样处理
  • 厂房鉴定费的账户是什么
  • 车辆购置税计入税金及附加吗
  • 旅游费用如何记账科目
  • 建账有几种方法
  • mysql查询语句菜鸟教程
  • mysqldump备份数据库不完整
  • windows8自动更新在哪里关闭
  • mac 应用
  • ubuntu10.04 root的帐户启用方法
  • Centos 6.4 安装dnsmasq的方法
  • 2021年win10累积更新
  • pqinit.exe - pqinit是什么进程 有什么用
  • win8.1怎么重新装系统
  • css弹出层
  • python如何配置
  • javascript 作用域
  • node网络爬虫
  • css不需要编译
  • jquery 入门
  • js模块化和组件化
  • threejs入门教程
  • 迅雷继续下载
  • 安卓微信自带聊天背景图片高清
  • 粮食企业所得税税率
  • 国税系统重点领导名单
  • 腾讯 短信服务
  • 土地评估报告书
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设