SSL证书问题:CN条目与URL中的主机名不匹配

use*_*670 1 ssl curl libcurl

我正在尝试使用自签名证书通过SSL建立服务器客户端通信.在服务器端,我在创建证书时添加了CN =.我的客户端使用libCurl进行通信,CURLOPT_SSL_VERIFYPEER设置为1,CURLOPT_SSL_VERIFYHOST设置为2.

当客户端尝试使用URL中的服务器FQDN发送请求时,它可以正常工作.但如果客户端使用IP地址,我收到错误消息为'SSL:证书主题名称''与目标主机名不匹配'''我知道问题是'网址中使用的主机名应与证书中提供的主题名一致' .

但是这个问题的解决方案是什么?客户端应该能够使用IP地址/短主机名/ FQDN进行连接.我尝试在证书中添加多个CN条目(用于FQDN和IP),但它不起作用.

Dan*_*erg 5

使用URL中的真实主机名进行libcurl,以便主机名验证起作用.

如果要指向另一个主机,而不是通常要解析的名称,请使用CURLOPT_RESOLVE强制libcurl使用本地/临时IP.

请参阅resolve.c示例,了解如何完成此操作.

如果要在证书中添加多个名称,请使用SubjectAltName而不是CN.