【发布时间】:2016-04-06 10:31:15
【问题描述】:
我正在使用 gSoap 连接到通过其固定 IP 地址知道的服务器。
我希望这可以工作,因为服务器证书包含此 IP 地址的“主题备用名称”条目。但是,我收到“tcp_connect 中的 SSL/TLS 证书主机名不匹配”。
搜索这个问题,我找到了this SE post。查看那里显示的代码,我发现仅针对 URL 测试了 DNS 名称,而不是 IP 地址(stdsoap2.cpp):
if (nval && !strcmp(nval->name, "DNS") && !strcmp(nval->value, host))
{ ok = 1;
break;
}
我设法通过更改如下代码使连接正常工作:
if (nval && !strcmp(nval->name, "DNS") && !strcmp(nval->value, host))
{ ok = 1;
break;
}
if (nval && !strcmp(nval->name, "IP Address") && !strcmp(nval->value, host))
{ ok = 1;
break;
}
问题: 我应该认为这是 gSoap 中的一个错误并提交一个补丁,还是它是错误 SSL 使用的结果?我是否应该通过将 IP 添加到主题备用名称作为 DNS 名称而不是 IP 地址来解决此问题?
【问题讨论】: