今天介绍一下SSL双向认证服务器端认证模式的设置,很关键。

初始化ssl时,要使用SSL_CTX_set_verify函数设置验证模式,下面介绍下集中模式:

OpenSSL 验证证书模式

OpenSSL 有四种验证证书的模式,这样可以自己根据验证结构来决定应用程序的行为。四种验证模式分别是:

  1. SSL_VERIFY_NONE:完全忽略验证证书的结果。当握手必须完成的话,就选中这个选项。其实真正有证书的人很少,尤其是在中国,那么如果 SSL 运用于一些免费的服务,比如 EMAIL 的时候,SERVER 端最好采用这个模式。
  2. SSL_VERIFY_PEER:希望验证对方的证书。这个是最一般的模式。对 CLIENT 来说,如果设置了这样的模式,验证SERVER的证书出了任何错误,SSL 握手都告吹。对 SERVER 来说,如果设置了这样的模式,CLIENT 倒不一定要把自己的证书交出去。如果 CLIENT 没有交出证书,SERVER 自己决定下一步怎么做。
  3. SSL_VERIFY_FAIL_IF_NO_PEER_CERT:这是 SERVER 使用的一种模式,在这种模式下, SERVER 会向 CLIENT 要证书。如果 CLIENT 不给,SSL 握手告吹。
  4. SSL_VERIFY_CLIENT_ONCE: 这是仅能使用在 SSL SESSION RENEGOTIATION 阶段的一种方式。如果不是用这个模式的话,那么在 RENEGOTIATION 的时候,CLIENT 都要把自己的证书送给 SERVER,然后做一番分析。这个过程很消耗 CPU 时间的,而这个模式则不需要 CLIENT 在 RENEGOTIATION 的时候重复送自己的证书了。

SSL双向认证的认证模式设置问题相关推荐

  1. SSL双向认证和SSL单向认证的流程和区别

    refs: SSL双向认证和SSL单向认证的区别 https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证! https://cloud.te ...

  2. 超详细的Asp.net使用SSL双向认证,一篇就够了

    传统:项目和项目之间https仅通过SSL单向认证后进行数据传输: 本文:项目和项目之间做到SSL双向认证,防止攻击者恶意破坏: 关于单向认证和双向认证的区别:https://cloud.tencen ...

  3. SSL双向认证的证书详解

    最近公司在上SSL双向强认证.国外叫Mutual Authentication. 也就是除了服务端的的SSL证书, 客户端也必须有自己的P12 证书, 实现双向认证. 这里是服务端的设置: Syste ...

  4. 【ssl认证、证书】SSL双向认证java实战、keytool创建证书

    文章目录 概述 keytool示例 参考 相关文章: //-----------Java SSL begin---------------------- [ssl认证.证书]SSL双向认证和SSL单向 ...

  5. JAVA实现发送HTTPS请求(SSL双向认证)

    一.项目背景 Java项目需要作为客户端发起HTTPS请求访问服务端,并且需要携带证书进行SSL双向认证,当前提供的证书相关文件有:ca.crt.ca.key.client.crt.client.ke ...

  6. php使用curl库进行ssl双向认证

    官方文档: http://www.php.net/manual/zh/function.curl-setopt.php#10692 官方举例: <?php curl_setopt($ch, CU ...

  7. java实现 SSL双向认证

    http://avery-leo.iteye.com/blog/276096 实现技术: JSSE(Java Security Socket Extension) 是Sun为了解决在Internet上 ...

  8. 服务器双向认证 原理,什么叫SSL双向认证 SSL双向认证过程是怎样的

    我们都知道SSL认证能够分成SSL双向认证和SSL单向认证.那么,什么是SSL双向认证?SSL双向认证过程又是怎样的?小编就在接下来的内容为各位详细讲述. 什么叫SSL双向认证 SSL双向认证则是需要 ...

  9. SSL双向认证和SSL单向认证的区别

    双向认证 SSL 协议要求服务器和用户双方都有证书.单向认证 SSL 协议不需要客户拥有CA证书,具体的过程相对于上面的步骤,只需将服务器端验证客户证书的过程去掉,以及在协商对称密码方案,对称通话密钥 ...

最新文章

  1. redis中的事务、lua脚本和管道的使用场景
  2. C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签
  3. 诗与远方:无题(六十三)- 杂诗,然,矣
  4. Android 应用开发(第四章)---APP数据埋点
  5. php删除二维数组的某一行某一列_php中怎么去除二维数组的某个字段?
  6. mac ipmessage
  7. 大数据学习总结(4)参考splunk架构
  8. 天勤2022数据结构(二)栈和队列
  9. JavaWeb之HttpSession
  10. 包含了6种不同格式的10种不同的Code 39条形码字体样式的工具包Code 39 Font Advantage Package
  11. 各种坐标之间的转换方法汇总
  12. 安装win7系统时出现蓝屏0000007e解决方案
  13. mantis apache mysql_Nginx、Apache、PHP、Mantis上传文件和附件大小设置
  14. HBuilder连接不上逍遥Android模拟器
  15. 【猿说VUE】事件处理,Vue奠基之石
  16. cmd介绍及常用命令
  17. 网络安全学习笔记(2)
  18. (转)在路上—Tinyfool的程序员生涯(职业生涯篇一)
  19. centos7限制cpu使用_CentOS7中CPU频率调整问题
  20. 如何修改MTK 6592 手机(如果华为荣耀3X系列)IMEI码

热门文章

  1. czide-CALLAN自制语言(python)
  2. 组件服务器与共享文件夹的区别,存储区域网络(SAN)和网络附加存储(NAS)之间的区别...
  3. 千峰实训-Python-周六
  4. pgsql 重置自增id起始值
  5. Arduino实验一:双色灯实验
  6. 台积电赴美建厂成笑话?百亿补贴缩水10倍,创始人:我们低估了代价
  7. 位操作符的一些运算小技巧
  8. 5个理由告诉你, 区块链未必适合你的业务!
  9. 32位浮点数表示方法
  10. 无畏契约进不去,提示图形驱动程序崩溃怎么办?