大概写点备忘

在进行基于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 通讯中的证书问题相关推荐

  1. Windows 11和Windows 2022 TLS/SSL(Schannel SSP)的加密套件

    一.TLS/SSL(Schannel SSP)加密套件简介 TLS/SSL(Schannel SSP)加密套件是一组密码编译演算法.TLS/SSL 通讯协定的安全通道SSP 实作会使用加密套件中的演算 ...

  2. x509证书_从Linux shell提示符中查看TLS/SSL证书有效期

    $ openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -da ...

  3. 科普:TLS、SSL、HTTPS以及证书(转)

    最近在研究基于ssl的传输加密,涉及到了key和证书相关的话题,走了不少弯路,现在总结一下做个备忘 不少人可能听过其中的超过3个名词,但它们究竟有什么关联呢? TLS是 传输层安全协议(Transpo ...

  4. SSL协议安全系列:PKI体系中的证书吊销

    GoSSIP_SJTU · 2016/03/03 10:06 0x00 前言 在前面的章节我们讨论了部分SSL/TLS握手协议.记录协议中存在的安全问题,针对它们的攻击以及相应的加固方案.在SSL/T ...

  5. 阿里云环境中TLS/SSL握手失败的场景分析

    TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性更多.本文来总结下各种握手失败的场景. 一次TLS/SSL握手的过程 本文不详细介绍T ...

  6. jssdk信息验证失败_阿里云环境中TLS/SSL握手失败的场景分析

    TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性更多.本文来总结下各种握手失败的场景. 一次TLS/SSL握手的过程 本文不详细介绍T ...

  7. c#中https通讯如何添加证书

    c#如何在https在通讯中需要添加证书密码 public static class HTTPS{// byte[] certificate = Properties.Resources.client ...

  8. TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别

    我的TLS实现:https://github.com/mrpre/atls/ 大家可以参考,代码里面的逻辑较清晰. 我的SSL专栏见:https://blog.csdn.net/mrpre/artic ...

  9. RSA及TLS/SSL及数字证书原理

    转载自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html RSA算法原理(二) 作者: 阮一峰 日期: 2013年7 ...

  10. 如何在 Web 发布规则中使用证书进行 SSL 身份验证

    概要 本文介绍如何设置 Internet Security and Acceleration (ISA) Server 2000 来发布需要客户端使用证书进行身份验证的 Web 站点.对于使用基于证书 ...

最新文章

  1. 五道java小题,补更四道java小题
  2. 提高SQL语句的性能
  3. C语言 字符串转结构体,字符串指针转化为结构体指针!
  4. andriod环境搭建
  5. win10 后台运行jar包_小编演示win10系统双击运行jar文件的教程
  6. C++---智能指针原理讲解
  7. 走进我的交易室03_第一步成功的外部障碍
  8. 第 1 章 课程概述
  9. 配置远程登陆交换机方法
  10. 2021年文山州一中高考成绩查询,云南文山第一中学2021年录取分数线
  11. 深度学习3-tensorflow2.0模型训练-自定义模型训练
  12. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger
  13. 剑指offer-06-旋转数组的最小数字
  14. Percona XtraDB Cluster(PXC)原理
  15. ubuntu20 scrt 连接ssh报错的解决方法
  16. ijkplayer播放器h265解码能力调研
  17. 基于flask的可视化动漫分析网站
  18. 微信小程序使用formdata传参上传图片
  19. 计算机和音乐结合的作品,用计算机创作多媒体作品──音乐和声音张燕.doc
  20. 文字图片OCR识别神器 没有不能复制的文字

热门文章

  1. 2022年第十九届五一数学建模竞赛 C题 火灾报警系统问题
  2. 关于瑞昱8763bfr的学习总结(1)
  3. 计算机实习工作计划与实施步骤,实习工作计划与实施步骤范文
  4. 计算机232接口接线图,RS485电缆(电脑和变频器的连线)如何接法!RS232接法知道的2-3 3-2 5-5-工业支持中心-西门子中国...
  5. 交换机vlan配置实训心得_交换机系统配置实验心得
  6. Dell Inspiron 14 3437装win7系统没有网卡驱动解决办法
  7. html5与access连接数据库操作,access是一个什么数据库?
  8. Linux网络操作系统及应用教程(项目式)项目四
  9. 轻松调用Google翻译
  10. 基于SSM的企业人事管理系统(Spring+SpringMVC+Mybatis)