5.5 tls简单使用

Telink TLSR825x系列——Mbed TLS(mbedtls)库的简单移植和使用 相比互联网的openSSL,物联网的嵌入式设备适合小巧灵活的MbedTLS,曾用名PolarSSL,可以根据需求进行配置,降低对硬件资源的消耗。mbedtls是一款采用Apache 2.0许可证协议开源软件加密库,使用标准C语言编写;独立的模块设计,降低模块之间的耦合度。Mbed TLS官网mbedtls官方名称为Mbed TLS,如果网上搜不到相关资源,就用“Mbed TLS”来做关键词来搜索,毕竟对搜索引擎来说“Mbed TLS”和“mbedtls”搜索的是不同的东西。 阅读详情

1、生成服务器证书,服务器使用自签名证书

openssl genrsa -out server-key.pem 2048

openssl req -new -sha256 -key server-key.pem -out server-csr.pem    

//在CN处填写服务器主机名localhost

openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem

 2、将服务器私钥server-key.pem和CA根证书server-cert.pem复制到客户端,然后生成客户端证书

openssl genrsa -out client-key.pem 2048

openssl req -new -sha256 -key client-key.pem -out client-csr.pem    

//在CN出填写客户端localhost

openssl x509 -req -CA server-cert.pem -CAkey server-key.pem -CAcreateserial -in client-csr.pem -out client-cert.pem

3、 server.js

const tls = require('tls');
const fs = require('fs');

const options = {
    key: fs.readFileSync('server-key.pem'),
    cert: fs.readFileSync('server-cert.pem'),

    // 这仅在使用客户端证书身份验证时才需要。
    requestCert: true,

    // 仅当客户端使用自签名证书时才需要这样做。
    ca: [ fs.readFileSync('client-cert.pem') ]
};

const server = tls.createServer(options, (socket) => {
    console.log('server connected',
        socket.authorized ? 'authorized' : 'unauthorized');
    socket.write('welcome!\n');
    socket.setEncoding('utf8');
    // socket.pipe(socket);socket是双工流
    socket.on('data',function (data){
        console.log(data)
    })
    process.stdin.pipe(socket);
});
server.listen(8000, () => {
    console.log('server bound');
});

4、client.js

const tls = require('tls');
const fs = require('fs');

const options = {
    // 仅当服务器需要客户端证书身份验证时才需要。
    key: fs.readFileSync('client-key.pem'),
    cert: fs.readFileSync('client-cert.pem'),

    // 仅当服务器使用自签名证书时才需要。
    ca: [ fs.readFileSync('server-cert.pem') ],

    // 仅当服务器的证书不适用于 "localhost" 时才需要。
    checkServerIdentity: () => { return null; },
};

const socket = tls.connect(8000, options, () => {
    console.log('client connected',
        socket.authorized ? 'authorized' : 'unauthorized');
    process.stdin.pipe(socket);
    // socket.pipe(socket)
    process.stdin.resume();
});
socket.setEncoding('utf8');
socket.on('data', (data) => {
    console.log(data);
});
socket.on('end', () => {
    console.log('server ends connection');
});

先启动server,再启动client,server端便能和client端进行消息通信了

TLS握手流程分析 客户端发送:用于初始化会话消息,该消息主要包含如下信息:: 客户端发送它所支持的最高 SSL/TLS 版本;:一个 32 字节的客户端随机数,该随机数被服务端生成通信用的对称密钥(master secret);:session ID 被客户端用于恢复之前的会话: 客户端发送它所支持的加密套件列表服务端发送:服务端发送双方所支持的最高的 SSL/TLS 版本;:一个 32 字节的服务端随机数,被客户端用于生成通信用的对称密钥(master secret);:用于会话恢复; 阅读详情

相关推荐

rabbitmq使用TLS支持SSL加密处理

最近在开发过程中, 有收到要求,rabbitmq 不能使用明文传输,常规想法就是TLS加密传输。看到rabbitmq 官网有提供TLS支持的说明。 Rabbitmq 加密传输由2种方式: 使用TLS加密直连 通过类似HA代理的方式从https转换成http 比如nginx, TLS_termination_proxy等都可以实现 官网也阐述了其他一些ssl支持的说明,这边就不介绍了。 这边具体说一下,怎么构建TLS链接。 步骤1:使用TLS工具生成证书(开发测试环境),生产环境建议使用商业的CA机构

5226

TLS详解

tls

nb1253587023的博客 970

TLS协议详解

万字详解TLS协议,以及如何优化Https

GeniusLS的博客 2561

gin框架-37--HTTP2 server 推送

gin框架37--HTTP2 server 推送介绍案例说明 介绍 本文主要介绍 HTTP2 server 推送。 服务器推送(server push)指的是,还没有收到浏览器的请求,服务器就把各种资源推送给浏览器。比如,浏览器只请求了index.html,但是服务器把index.html、style.css、example.png全部发送给浏览器。这样的话,只需要一轮 HTTP 通信,浏览器就得到了全部资源,提高了性能。 下图为一个简单http请求的过程,左边没有使用push, 每个资源都会先请求再

脚步不能达到的地方,眼光可以达到;眼光不能达到的地方,精神可以飞到 2695

一文详解SSL/TLS协议

SSL/TLS协议是保障网络通信安全的核心技术,其在应用层和传输层之间建立加密通道,文章系统梳理了TLS协议的发展历程、工作原理及最新进展

m0_50146396的博客 1万+

TLS抓包分析

TLS(Transport Layer Security, 传输层安全):用于保证Web通信以及其他流行协议的安全。 TLS的前身是安全套接字层(SSL)。 TLSv1.2版本运行在面向流的协议(如TCP)之上。 记录协议提供分片、压缩、完整性保护以及对客户端与服务器之间所交换数据的加密服务。 信息交换协议负责建立身份,进行认证,提示警报,以及为用于每一条连接的记录协议提供唯一的密钥材料。 TL...

神童i的博客 7331

Node.js TLS/SSL

Stability: 3 - Stable 可以使用 require('tls') 来访问这个模块。 tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安全套接层(Secure Socket Layer):加密过的流通讯。 TLS/SSL 是一种公钥/私钥基础架构。每个客户端和服务端都需要一个私钥。私钥可以用以下方法创建的: openssl g...

weixin_30456039的博客 1017

2025红队实战:Win11环境下ZAP、CobaltStrike与免杀套件深度评测

在网络安全领域,渗透测试与红队行动是评估系统防御能力的关键手段。其核心原理在于模拟真实攻击者的技术与流程,以发现潜在的安全漏洞。这项技术的价值在于主动识别风险,提升整体安全防护水平,广泛应用于企业安全评估、漏洞挖掘和攻防演练等场景。随着Windows 11系统普及,其增强的安全机制(如内存完整性、基于虚拟化的安全)对传统攻击工具链提出了新的挑战。本文聚焦于**CobaltStrike二开版**与**免杀套件**在Win11环境下的实战应用与深度对抗,探讨如何优化工具链以应对现代端点检测与响应(EDR)和高级

weixin_29315091的博客 308

java发送邮件

mail.smtp.ssl.checkserveridentity:指定是否检查服务器的身份验证,默认情况下为 false。mail.smtp.starttls.enable:指定是否启用 STARTTLS 加密,默认情况下为 false。mail.smtp.ssl.enable:指定是否启用 SSL 加密,默认情况下为 false。setProperty:设置属性key-value键值对,如:prop.setProperty("mail.transport.protocol", "smtp");

lv_zj的专栏 2842

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1312

Cluster Computing期刊投稿实战:从格式调整到技术检查的全流程解析

本文详细解析了向Cluster Computing期刊投稿的全流程,涵盖心理准备、格式调整、参考文献处理及投稿系统操作。重点介绍了如何利用Springer LaTeX模板,特别是使用picins宏包解决作者简介排版难题,并强调了将BibTeX转换为BBL文件以避免技术审查陷阱,为研究者提供了一份实用的投稿指南。

weixin_28432777的博客 665

springboot 发送邮件实战(完整代码)

在我们实际项目中,有一些需求涉及到使用邮箱发送邮件的功能。Spring 框架提供了使用JavaMailSender接口发送电子邮件的抽象,适用于简单邮件发送,含附件文件邮件发送,还有html,模板邮件发送等。

gorylee的博客 2589

AI开发提效10倍:从需求到部署的全流程实战指南(附Prompt模板)

用AI开发不是“偷懒”,而是把时间花在更有价值的地方——原来花80%时间写重复代码,现在用AI搞定后,能把精力放在“优化用户体验”“提升系统性能”这些核心工作上,这才是AI给开发者的真正红利。如果你还没开始用AI做开发,建议从“写一个简单接口”“补一段注释”开始尝试,先用起来再优化方法。记住:AI是工具,不是对手,学会驾驭它,你会发现开发效率提升的同时,还能告别无效加班。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1525

apache服务器配置tls_关于apache 开启 ssl https 支持 TLS1.2 的些事

项目背景需要搭建一个小程序的服务器,当然要使用https协议服务器windows service 2012 r2,后台语言是php,服务集成环境装的是appserv2.5 ,apache2.2证书申请阿里云的,https协议能正常打开,就是小程序请求不了,要求TLS1.2网上的文章基本都是旧的,而且没有说明apache版本,基本不适合你,还是要折腾最后找到文章说apache的httpd版本低不支持...

weixin_39802132的博客 1395

拌合楼管理软件开发(十一) 海康威视车牌识别摄像头安装调试,总算是跑通了。

/保存的文件个数这里之所以需要用到委托,直接更新textbox文本中的内容,以及复制picturebox的image会提示不是从齐创建的线程调用。

morsth的博客 4811

YOLOv8极速瘦身实战:LAMP剪枝让模型又快又准

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

FJN110的博客 257

TLS简单介绍

TLS(Transport Layer Security,安全传输层),TLS是建立在传输层TCP协议之上的协议,服务于应用层,它的前身是SSL(Secure Socket Layer,安全套接字层),它实现了将应用层的报文进行加密后再交由TCP进行传输的功能。一段信息,经过摘要算法得到一串哈希值,就是摘要(dijest)。常见的摘要算法有MD5、SHA1、SHA256、SHA512等。关于摘要,有几点需要你明白的:(a)摘要算法,是把任意长度的信息,映射成一个定长的字符串。

fitpolo 4360

AEJoy —— 表达式之仅限在某一维摆动【JS】

效果图 wiggle() 的作用仅限于水平方向 想法 wiggle() 确实是一个非常方便的工具,但有时您希望对它有更多的控制。在本例中,我们希望仅将摆动限制在水平方向。 设计 要理解 wiggle() 最重要的一点是,它生成的结果与应用它的属性具有相同的维度。例如,如果你将 wiggle() 应用于 3D 层的 position 属性,结果将是一个由三个元素组成的数组(x、y 和 z 各一个)。我们需要做的就是将 wiggle() 的结果捕捉到一个变量(我们称之为 “w” ),然后从这个变量中提取我们想

ShaderJoy 的兴趣技术杂货铺 2094

TLS 详解

原文链接: https://blog.wangriyu.wang/2018/03-http-tls.html 1. TLS 定义 SSL(Secure Sockets Layer) 安全套接层,是一种安全协议,经历了 SSL 1.0、2.0、3.0 版本后发展成了标准安全协议 - TLS(Transport Layer Security) 传输层安全性协议。TLS 有 1.0 (RFC 2246)...

鱼_乐的博客 5220

如何学习总线技术

如何学习总线技术 以形象生动的比喻来描绘了总线技术的基本思想,指出了总线的基本分类和总线传输的基本原理,以及在学习过程中应当掌握的最基本的知识,对初学者有起到抛砖引入的作用。 0引言   如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年

ce123的技术博客 8526

jre9下载 jdk9

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

SSL和TLS-TLS 介绍

SSL和TLS-TLS 介绍TLS PRFGeneration of Keying Material TLS协议在结构上与SSL协议相同。是一个客户端/服务器协议,运行在可靠的传输层协议之上,比如TCP。 和SSL一样,也由两层组成: 底层,是TLS record protocol fragments,可选压缩、加密保护高层协议数据。相应的数据结构叫TLSPlaintext、TLSCompres...

weixin_43364172的博客 3619

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

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

OTA场景使用mbed TLS 进行 MD5 校验

通过 mbed TLS 提供的 API,计算 MD5 校验变得非常简单。在嵌入式开发中,使用 mbedtls_md5 函数可以快速生成 MD5 校验值,确保数据的完整性。如果你的应用需要对大数据或流式数据进行 MD5 计算,可以使用增量计算方法(通过 mbedtls_md5_context)。这种方法不仅适用于简单的数据校验,也适合处理更复杂的场景。

qq_39642740的博客 1353

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TLS协议简单介绍

TLS(Transport Layer Security)即安全传输层协议,在两个通信应用程序之间提供保密性和数据完整性。最典型的应用就是HTTPS。HTTPS,即HTTP over TLS,就是安全的HTTP,运行在HTTP层之下,TCP层之上,为HTTP层提供数据加解密服务。也可用于email,即时通信等。

wsq的博客 2633

TLS协议详解,一文带你了解TLS协议

本文介绍了TLS的概论、工作原理、发展历史、算法和参考资料。TLS是一种加密协议,用于保护网络通信的安全性和隐私性。它使用公钥加密和对称密钥加密两种加密方式来保护通信的安全性,可以防止黑客窃取用户的敏感信息。TLS的发展历史可以追溯到SSL 1.0,但由于存在安全漏洞而被废弃。TLS 1.0、TLS 1.1和TLS 1.2分别于1999年、2006年和2008年发布,进一步增强了安全性和性能。常用的加密算法包括AES、RSA、MD5等。

weixin_74021557的博客 1万+

快速验证TLS配置的5种原型方法

经过实践,我总结了5种快速验证TLS配置的原型方法,可以大幅提升调试效率。只需输入域名就能获得完整的协议支持报告,包括支持的TLS版本、加密套件等信息。通过指定-tls1、-tls1_1等参数,可以直接模拟不同协议版本的握手过程。平台内置的Web IDE和终端让配置修改变得非常简单,而且支持一键部署测试服务,省去了本地搭建环境的麻烦。在API调试时,Postman的Settings中提供了强制指定TLS版本的功能。在Chrome的Security面板中,可以直观看到当前页面使用的TLS版本和加密方式。

GoldenleafRaven13的博客 943

MySQL5.7之SSL/TLS加密连接配置

运维必知的安全内容之TLS协议选择,如何选择合适的连接MySQL的TLS版本,本文将给出参考。查看MySQL支持的TLS协议版本,在 MySQL 5.7.28之前,可以使用 yaSSL 作为 OpenSSL 的替代方案来编译 MySQL。 从 MySQL 5.7.28开始,删除了对 yaSSL 的支持,所有 MySQL 构建都使用 OpenSSL。从 MySQL 5.7.35开始,不推荐使用 TLSv1 和 TLSv1.1 连接协议,并且对它们的支持可能会在未来的 MySQL 版本中被删除。

独码乐,不如众码乐,乐享其中 7966
上一篇: 5.4 nodejs监听键盘事件
下一篇: 5.6 worker_threads并发示例
LetsStudy
博客等级 码龄9年 96粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值