位置: 编程技术 - 正文

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

  • 企业所得税是什么意思大白话
  • 兼营和混合销售的联系
  • 对方开具红字发票信息表后我们怎么开负数
  • 收据能入账抵税吗
  • 税法关于开具发票的规定
  • 业务招待费扣除计算
  • 年底计提费用和实际费用
  • 建设厂房需要几个证
  • 企业购买硬件与软件该如何做账?
  • 预收货款属于资金投入吗
  • 样机销售是什么意思
  • 税收和征税
  • 购买护肤品取得的发票能入账吗?
  • 个税合理避税的意义
  • 继承房产也需要缴税吗
  • 资产损益表怎么看
  • 个税系统工资少报了怎么办
  • 从农民手里收的钱叫什么
  • 外包物流适用范围
  • 统一社会信用代码查询官网
  • 现金支出有哪些项目
  • 分期收款什么是分期还款
  • 商家说补发什么意思
  • 如何用注册表
  • linux进程操作命令
  • 按揭贷款到账时间
  • 冲减其他应收款摘要怎么写
  • newacs.exe是什么进程
  • HTTP 错误 500.19- Internal Server Error 错误解决方法
  • 注册资金抽回
  • /t python
  • 住宿费电子发票没有章
  • 场地退租协议样本
  • 收到银行承兑汇票
  • 外经证预缴税款之后剩下的税款交到哪呢
  • 商品调价差额调整单会计分录
  • 卖固定资产计入
  • 帝国cms导航站模板
  • 进项税额年末账务处理
  • 资产减值损失是什么意思
  • python缩进有什么作用
  • 一般纳税人作废小规模时开的发票怎么报税
  • 快速实现愿望超灵的方法
  • SQL2008中通过DBCC OPENTRAN和会话查询事务
  • 其他应收款收不回来怎么写情况说明
  • 固定资产不折旧直接进费用
  • 管理费用现金流量附表指定
  • 如何暂估费用会计分录
  • 信用卡产生滞纳金会影响信用吗
  • 投资性房地产用三栏式吗
  • 亏本处理产品怎么做账
  • 水利建设税怎么做账
  • 还账准备计提方法
  • 融资租赁固定资产的账务处理实例
  • 只有合同没发票能挂账吗
  • 进出口企业需要哪些手续
  • 食品算日用品吗
  • sqlserver游标的使用场景
  • sql server字段
  • win8系统如何激活
  • fedora linux安装教程
  • win xp怎么样
  • xp系统怎么新建桌面
  • mac画图的app叫什么
  • macbook备份数据
  • fpd文件是什么意思
  • linux创建目录函数
  • 电脑window8系统怎么样
  • jquery animation
  • cocos2dx运行原理
  • table标签怎么设置宽高
  • 简单的分享一下
  • node 创建文件夹
  • python写抢购教程
  • javascript初级教程
  • python中操作PDF的库
  • 网上申报纳税小程序下载
  • 四川国税局普通发票查询?
  • 百分之13的税率怎么算如何算百分之13的税率
  • 税控盘服务费必须每年交吗为什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设