位置: 编程技术 - 正文

详解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基础教程)

  • 申报个体经营所得税时营业外收入怎么填
  • 装修设计合同印花税
  • 如何记忆消费税15个税目
  • 增值税税负率是含税还是不含税
  • 个体户不刻公章违法吗
  • 进口发票可以抵扣吗
  • 多交税款抵税会计分录
  • 商标使用权入股可以退出吗
  • 因质量问题怎么赔偿
  • 长期股权变更
  • 全年一次性奖金税收优惠政策
  • 咨询服务费怎么结转成本
  • 10个点的发票税点开6个点专票
  • 营改增后小规模纳税人
  • 公司转账给公司会计分录
  • 长期待摊费忘记摊了怎么办
  • 种子销售公司
  • 递延所得税资产和负债怎么理解
  • 员工工牌的作用
  • 业务招待住宿进什么科目
  • 公司变更税务处理?
  • 股权激励取消怎么处理?
  • 公司固定资产一般谁负责
  • 项目工程会计账务处理
  • 企业计提的坏帐会计分录
  • 如何使用ChapGPT
  • 周转材料计划成本会计分录
  • win10专业版19042.630
  • PHP:oci_statement_type()的用法_Oracle函数
  • WordPress置顶文章的相关PHP函数小结
  • 关于工程材料的质量控制说法正确的是
  • 苹果14发布会时间
  • 经营出租的机器设备需要计提折旧吗
  • 六千元左右
  • Win11 Build 22000.160(KB5005189)预览版发布,更新了哪些内容
  • 应付票据转让会计分录
  • 房地产开发企业土地增值税怎么计算
  • yolo v5 focus
  • 个体户文化事业建设费免征
  • 分包缴纳的个税怎么算
  • 流动资产处置利得
  • 教育行业财务处理流程
  • 如何在vue项目中禁止谷歌浏览器改变网页颜色
  • 【历史上的今天】4 月 7 日:IBM System/360 问世;以太网的发明者诞生;第一个 RFC 文档发布
  • 蓝桥杯c题库及答案
  • 牛客前端刷题怎么样
  • 三维点云识别
  • php给图片加水印
  • php虚拟主机
  • 怎样在网上领取
  • {dede:channel type='son'}无栏目调用同级栏目
  • access微软
  • 总分机构纳税
  • 对公户单笔转账有限额吗
  • 购买的优惠卷到期后退款
  • 发票管理办法是法律吗
  • 海关票怎么做账
  • 预计负债的三个条件
  • 企业所得税上个季度没报
  • 发放职工工资是什么支出
  • 补交上年度企业所得税税额需要本年度纳税调增吗
  • 什么叫总分类账簿
  • 银行结息交易是扣钱的意思吗
  • 汇算清缴前取得暂估发票
  • 收到商业汇票怎么入账
  • 公司成立前的费用发票可以入账吗
  • 借贷不平衡是什么意思
  • 如何进行企业建账
  • 微软9月22
  • xp系统怎么禁止启动项
  • 如何不让qq开机自启
  • 升级win10后悔了
  • Node.js中的construct构造函数
  • android+
  • python文件的读操作方法
  • 一个简单的javaweb项目
  • jquery里面的$是什么意思
  • position属性含义
  • 江苏省财务官网
  • 学费减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设