-9984 - X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
subject alt name:
对于证书持有者,一般使用 Subject
项标记,并使用 subjectAltName
扩展项提供更详细的持有者身份信息。 subjectAltName
全称为 Subject Alternative Name,缩写为 SAN。它可以包括一个或者多个的电子邮件地址,域名,IP地址和 URI 等,详细定义如下
SubjectAltName ::= GeneralNames GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName GeneralName ::= CHOICE { otherName [0] OtherName, rfc822Name [1] IA5String, dNSName [2] IA5String, x400Address [3] ORAddress, directoryName [4] Name, ediPartyName [5] EDIPartyName, uniformResourceIdentifier [6] IA5String, iPAddress [7] OCTET STRING, registeredID [8] OBJECT IDENTIFIER }
当颁发的证书不存在 Subject
项的时候,证书必须包含扩展项 subjectAltName
,并且标记为关键(critical)的。当颁发的证书存在 Subject
项的时候,必须将扩展项 subjectAltName
标记为非关键(no-critical)的。注意:用于颁发证书的 CA 证书是必须包含 Subject
项的。
问题分析:
客户端程序调用API mbedtls_ssl_set_hostname() 设置 CN
客户端和服务端在握手过程中,服务端会把带有服务端公钥的证书发给客户端,此证书包含 subject name 或 subject alt name,如果上面设置的 CN 和 subject name 或 subject alt name 不一样,则报错:
-9984 - X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
标签:
加密算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2018-06-24 linux driver ------ platform模型 之 设备注册和驱动注册
2017-06-24 关键字 - extern
2017-06-24 sub-G 无线芯片基础知识