这里写自定义目录标题

  • C#使用证书与服务端建立SSL/TLS通信,验证失败
    • 问题描述
    • 框架环境
    • 分析原因及解决方案

C#使用证书与服务端建立SSL/TLS通信,验证失败

遇到一个问题挺特殊的,记录一下。

问题描述

C#做客户端使用TcpClient+SslStream建立SSL/TLS通信时,在调用SslStream.AuthenticateAsClient方法验证证书时发生异常。

异常信息:

调用 SSPI 失败,请参见内部异常。
接收到的消息异常,或格式不正确。
A call to SSPI failed, see inner exception.
The message received was unexpected or badly formatted

框架环境

同样的一套用于建立SSL连接的C#代码,之前在 .NET Core/.NET 5 环境下没有问题,但后来在 .NET Framework和.NET Standard 上运行时就产生了上述问题。
经过反复测试,发现问题确实只存在于.NET Framework和.NET Standard平台。

分析原因及解决方案

其实最终并没有真正解决这个问题,因为客户端上没有进行改动,反而是修改了服务端的代码。
服务端是用**C++**开发的,引用 OpenSSL库实现的,在配置服务端验证规则的时候关注到有一个参数 :

SSL_VERIFY_FAIL_IF_NO_PEER_CERT

意思如果服务端会向客户端要证书,如果客户端没有返回证书,则验证失败。
但是我翻遍了微软官方的文档,没有找到 SslStream 有关于返回客户端证书相关的方法,所以只能取消了这部分的验证。于是,连接就成功了。

推测是.NET Core在SSL通信的底层实现了返回客户端证书的操作,而.NET Framework和.NET Standard并没有。

C# SSL/TLS - 提示错误:“调用 SSPI 失败,请参见内部异常。”相关推荐

  1. 调用 SSPI 失败,请参见内部异常,System.Net.Security.SslState.StartSendAuthResetSignal 异常解法

    部署系统,登录时,出现下面异常错误: 调用 SSPI 失败,请参见内部异常. 来源: System 实例:    在 System.Net.Security.SslState.StartSendAut ...

  2. 调用 SSPI 失败,请参见内部异常

    前言:这是我的第一篇博客,很多知识也是正在学习和积累中.以后会记录一些技术上遇到的问题和总结一些知识点. 问题描述 前段时间用.net开发定时往MYSQL中查询和插入数据,会偶发出现 " 调 ...

  3. 调用 SSPI 失败,请参见内部异常 解决方法

    调用 SSPI 失败,请参见内部异常 解决方法 参考文章: (1)调用 SSPI 失败,请参见内部异常 解决方法 (2)https://www.cnblogs.com/qbz95/p/8093840. ...

  4. 调用 SSPI 失败,请参见内部异常 解决方法

    2017-11-12 12:49:53:706] OnServerConnectionAvailable error : System.Security.Authentication.Authenti ...

  5. 调用 SSPI 失败,请参见内部异常。接收到的消息异常,或格式不正确。

    调用 SSPI 失败,请参见内部异常.接收到的消息异常,或格式不正确. 参考文章: (1)调用 SSPI 失败,请参见内部异常.接收到的消息异常,或格式不正确. (2)https://www.cnbl ...

  6. 异常处理·EF·准备命令定义时发生错误。有关详细信息,请参阅内部异常

    阅文时长 | 0.08分钟 字数统计 | 134.4字符 主要内容 | 1.引言&背景 2.声明与参考资料 『异常处理·EF·准备命令定义时发生错误.有关详细信息,请参阅内部异常』 编写人 | ...

  7. 指定的服务器无法,AnyShare-Unify Editor 服务器与 AnyShare 对接失败,提示错误:连接失败,指定的服务器无法访问。...

    关键字 Unify Editor.对接.连接失败 适用产品 AnyShare Enterprise 6.0.x AnyShare Express 6.0.x 问题描述 Unify Editor 服务器 ...

  8. regsvr32提示模块加载失败 请确保二进制

    关于注册COM组件失败的问题,困扰了很久,花点时间研究一下, 找了很多文章,发现都解决不了问题 https://www.cnblogs.com/chucklu/p/4576867.html 以前急用的 ...

  9. virtualbox for mac安装器遇到了一个错误, 导致安装失败. 请联系软件制造商以获得帮助的解决办法...

    virtualbox下载地址: https://www.virtualbox.org/wiki/Downloads 原因:"Mac OS 10.13.4 会阻止外部内核扩展的安装" ...

最新文章

  1. 一分钟了解阿里云产品:阿里云解析五大热点技术问题分析
  2. 如何运行一个Java文件?
  3. Python——语言基础
  4. linux ubi代码分析,linux ubi文件系统
  5. curviloft插件怎么用_Curviloft (曲线放样) v1.8a
  6. php下载xlsx到本地,Laravel 5.8 实现Excel 下载(将信息数据导出成Excel下载到本地)...
  7. Java实现下载图片
  8. android 锁屏界面来电话,android锁屏界面短信解锁指向怎么修改?
  9. MTK6589双卡卡1或是卡2拨出电话
  10. win10下载CAD之后任务栏卡死
  11. aic准则和bic准则_用户故事准则
  12. 一套代码快速实现一个语音聊天室
  13. 记录每天背的单词,准备考研。(4月11日)
  14. 2018面经(1):机器视觉工程师岗位
  15. EasyExcel:读取Excel数据到List集合中
  16. pandas 时间属性函数
  17. html5中字体显示不出来怎么办,手机字体无法正常显示怎么办
  18. SurfaceGo_BMR_41_1.011.2.zip恢复镜像网盘满速下载地址
  19. nmon监控资源工具下载以及安装
  20. 【2011.12.10普及模拟】泽泽在埃及题解

热门文章

  1. TouchGFX开发(2)----触摸屏幕组件点亮LED
  2. k8s restful api 访问
  3. 视频教程-Spring boot快速入门-Java
  4. 16进制每一位存到数组里头
  5. 职高对口计算机应用资料,2020年湖南省职高对口计算机应用综合试卷(三校联考)...
  6. Mac /etc目录下文件示例
  7. STL源码剖析 学C语言,STL源码剖析(一)
  8. for i in range(起始值,终点值,步长):
  9. sikuli python java_python怎么调用sikuli
  10. 大学里计算机专业很忙吗,大学里“特累”的10大专业,忙到没时间恋爱!