Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl SSL证书问题:CN条目与URL中的主机名不匹配_Curl_Ssl_Libcurl - Fatal编程技术网

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

Curl SSL证书问题:CN条目与URL中的主机名不匹配,curl,ssl,libcurl,Curl,Ssl,Libcurl,我正在尝试使用自签名证书通过SSL建立服务器-客户端通信。在服务器端,我在创建证书时添加了CN=。我的客户端正在使用libCurl进行通信,CURLOPT_SSL_VERIFYPEER设置为1,CURLOPT_SSL_VERIFYHOST设置为2 当客户端尝试在URL中使用服务器的FQDN发送请求时,它工作正常。但若客户端使用IP地址,我会收到错误消息 “SSL:证书使用者名称与目标主机名称不匹配”我了解问题是“url中使用的主机名应与证书中提供的使用者名称匹配” 但这个问题的解决方案是什么?客

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

当客户端尝试在URL中使用服务器的FQDN发送请求时,它工作正常。但若客户端使用IP地址,我会收到错误消息 “SSL:证书使用者名称与目标主机名称不匹配”我了解问题是“url中使用的主机名应与证书中提供的使用者名称匹配”


但这个问题的解决方案是什么?客户端应该能够使用IP地址/短主机名/FQDN进行连接。我尝试在证书中为FQDN和IP添加多个CN entries,但没有成功。

在libcurl的URL中使用真实的主机名,以便主机名验证工作

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

请参见有关如何执行此操作的示例


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

在libcurl的URL中使用真实的主机名,以便主机名验证工作

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

请参见有关如何执行此操作的示例


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

我使用的是OpenSSL v5.0.8.1,并且在OpenSSL v<5.5.2的证书中使用SubjectAltName似乎存在漏洞。除了升级OpenSSL版本,还有其他替代方法吗?CVE指的是PHP版本,而不是OpenSSL。该漏洞实际上存在于PHP中。该漏洞在当前的libcurl中不存在,但它确实受到了我们在2009年修复的类似漏洞的影响:CVE-2009-2417:我使用的是OpenSSL v5.0.8.1,并且在OpenSSL v<5.5.2的证书中使用SubjectAltName似乎存在漏洞。除了升级OpenSSL版本,还有其他替代方法吗?CVE指的是PHP版本,而不是OpenSSL。该漏洞实际上存在于PHP中。该漏洞在当前的libcurl中不存在,但它确实受到了我们在2009年修复的类似漏洞的影响:CVE-2009-2417:DNS名称不应放在公共名称CN中。IETF和CA/浏览器论坛都反对这种行为。相反,在CN中使用友好的名称,因为它会显示给用户。DNS名称应放在主题备用名称SAN中。这是IETF和CA/B论坛都指定的。注意:CA/浏览器论坛很重要,因为浏览器和CA在这里聚会并决定策略。浏览器遵循CA/B论坛,不遵循IETF建议。DNS名称不应放在通用名称CN中。IETF和CA/浏览器论坛都反对这种行为。相反,在CN中使用友好的名称,因为它会显示给用户。DNS名称应放在主题备用名称SAN中。这是IETF和CA/B论坛都指定的。注意:CA/浏览器论坛很重要,因为浏览器和CA在这里聚会并决定策略。浏览器遵循CA/B论坛,不遵循IETF建议。