TLS/SSL 通讯中的证书问题
大概写点备忘
在进行基于TLS/SSL的以太网通讯时,有关证书遵循如下规则:
在设置证书校验模式时
今天介绍一下SSL双向认证服务器端认证模式的设置,很关键。
初始化ssl时,要使用SSL_CTX_set_verify函数设置验证模式,下面介绍下集中模式:
OpenSSL 验证证书模式
OpenSSL 有四种验证证书的模式,这样可以自己根据验证结构来决定应用程序的行为。四种验证模式分别是:
SSL_VERIFY_NONE:完全忽略验证证书的结果。当握手必须完成的话,就选中这个选项。其实真正有证书的人很少,尤其是在中国,那么如果 SSL 运用于一些免费的服务,比如 EMAIL 的时候,SERVER 端最好采用这个模式。
SSL_VERIFY_PEER:希望验证对方的证书。这个是最一般的模式。对 CLIENT 来说,如果设置了这样的模式,验证SERVER的证书出了任何错误,SSL 握手都告吹。对 SERVER 来说,如果设置了这样的模式,CLIENT 倒不一定要把自己的证书交出去。如果 CLIENT 没有交出证书,SERVER 自己决定下一步怎么做。
SSL_VERIFY_FAIL_IF_NO_PEER_CERT:这是 SERVER 使用的一种模式,在这种模式下, SERVER 会向 CLIENT 要证书。如果 CLIENT 不给,SSL 握手告吹。
SSL_VERIFY_CLIENT_ONCE: 这是仅能使用在 SSL SESSION RENEGOTIATION 阶段的一种方式。如果不是用这个模式的话,那么在 RENEGOTIATION 的时候,CLIENT 都要把自己的证书送给 SERVER,然后做一番分析。这个过程很消耗 CPU 时间的,而这个模式则不需要 CLIENT 在 RENEGOTIATION 的时候重复送自己的证书了。
————————————————
版权声明:本文为CSDN博主「enjoy嚣士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013919153/article/details/78616737
当选择SSL_VERIFY_NONE时,可以不调用CA根证书设置和加载
SSL_CTX_load_verify_locations (ctx, CACERT, NULL);
因为不需要验证双方证书,自然也就不需要CA根证书了。(此处是我的个人理解,希望共同讨论)
注意:这里虽然不验证对方证书,但是通讯还是加密的,客户端用的是服务器证书所带的公钥来完成随机数的加密(握手阶段服务器器发自己的证书给客户端,只是证书不被校验罢了),后续通讯中则使用基于该随机数的对称加密算法。
当选择SSL_VERIFY_PEER时,必须要调用CA根证书设置和加载(此处是我的个人理解,希望共同讨论)
SSL_CTX_load_verify_locations (ctx, CACERT, NULL);
因为要验证对方证书必须要有签发对方证书的CA证书
且还需要调用
/加载自身证书/
SSL_CTX_use_certificate_file (ctx, MYCERTF, SSL_FILETYPE_PEM)
/加载自身私钥/
SSL_CTX_use_PrivateKey_file (ctx, MYKEYF, SSL_FILETYPE_PEM)
/验证自身私钥和证书是否匹配/
SSL_CTX_check_private_key (ctx)
参考博客园博主欢跳的心文章https://www.cnblogs.com/etangyushan/p/3679457.html
TLS/SSL 通讯中的证书问题相关推荐
- Windows 11和Windows 2022 TLS/SSL(Schannel SSP)的加密套件
一.TLS/SSL(Schannel SSP)加密套件简介 TLS/SSL(Schannel SSP)加密套件是一组密码编译演算法.TLS/SSL 通讯协定的安全通道SSP 实作会使用加密套件中的演算 ...
- x509证书_从Linux shell提示符中查看TLS/SSL证书有效期
$ openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -da ...
- 科普:TLS、SSL、HTTPS以及证书(转)
最近在研究基于ssl的传输加密,涉及到了key和证书相关的话题,走了不少弯路,现在总结一下做个备忘 不少人可能听过其中的超过3个名词,但它们究竟有什么关联呢? TLS是 传输层安全协议(Transpo ...
- SSL协议安全系列:PKI体系中的证书吊销
GoSSIP_SJTU · 2016/03/03 10:06 0x00 前言 在前面的章节我们讨论了部分SSL/TLS握手协议.记录协议中存在的安全问题,针对它们的攻击以及相应的加固方案.在SSL/T ...
- 阿里云环境中TLS/SSL握手失败的场景分析
TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性更多.本文来总结下各种握手失败的场景. 一次TLS/SSL握手的过程 本文不详细介绍T ...
- jssdk信息验证失败_阿里云环境中TLS/SSL握手失败的场景分析
TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性更多.本文来总结下各种握手失败的场景. 一次TLS/SSL握手的过程 本文不详细介绍T ...
- c#中https通讯如何添加证书
c#如何在https在通讯中需要添加证书密码 public static class HTTPS{// byte[] certificate = Properties.Resources.client ...
- TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别
我的TLS实现:https://github.com/mrpre/atls/ 大家可以参考,代码里面的逻辑较清晰. 我的SSL专栏见:https://blog.csdn.net/mrpre/artic ...
- RSA及TLS/SSL及数字证书原理
转载自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html RSA算法原理(二) 作者: 阮一峰 日期: 2013年7 ...
- 如何在 Web 发布规则中使用证书进行 SSL 身份验证
概要 本文介绍如何设置 Internet Security and Acceleration (ISA) Server 2000 来发布需要客户端使用证书进行身份验证的 Web 站点.对于使用基于证书 ...
最新文章
- 五道java小题,补更四道java小题
- 提高SQL语句的性能
- C语言 字符串转结构体,字符串指针转化为结构体指针!
- andriod环境搭建
- win10 后台运行jar包_小编演示win10系统双击运行jar文件的教程
- C++---智能指针原理讲解
- 走进我的交易室03_第一步成功的外部障碍
- 第 1 章 课程概述
- 配置远程登陆交换机方法
- 2021年文山州一中高考成绩查询,云南文山第一中学2021年录取分数线
- 深度学习3-tensorflow2.0模型训练-自定义模型训练
- [译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger
- 剑指offer-06-旋转数组的最小数字
- Percona XtraDB Cluster(PXC)原理
- ubuntu20 scrt 连接ssh报错的解决方法
- ijkplayer播放器h265解码能力调研
- 基于flask的可视化动漫分析网站
- 微信小程序使用formdata传参上传图片
- 计算机和音乐结合的作品,用计算机创作多媒体作品──音乐和声音张燕.doc
- 文字图片OCR识别神器 没有不能复制的文字
热门文章
- 2022年第十九届五一数学建模竞赛 C题 火灾报警系统问题
- 关于瑞昱8763bfr的学习总结(1)
- 计算机实习工作计划与实施步骤,实习工作计划与实施步骤范文
- 计算机232接口接线图,RS485电缆(电脑和变频器的连线)如何接法!RS232接法知道的2-3 3-2 5-5-工业支持中心-西门子中国...
- 交换机vlan配置实训心得_交换机系统配置实验心得
- Dell Inspiron 14 3437装win7系统没有网卡驱动解决办法
- html5与access连接数据库操作,access是一个什么数据库?
- Linux网络操作系统及应用教程(项目式)项目四
- 轻松调用Google翻译
- 基于SSM的企业人事管理系统(Spring+SpringMVC+Mybatis)