我正在连接到https,其中证书只包含星号(*)。只有我的本地主机这没问题。但是在我的远程服务器上,这不起作用。
SSL: certificate subject name '*' does not match target host name '12.34.5.678' (not the real ip)
我之前曾与拥有IP的人谈过(他们没有域名)他们使用Asterisk http://www.asterisk.org/作为他们的服务。他们改变了,所以使用curl下载数据的唯一方法是使用https(这很好)。
这是我卷曲的样子
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_PORT, 10000);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "12.34.5.678:10000/session_login.cgi");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
curl_setopt($ch, CURLOPT_CAINFO, $certpath);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout in seconds
$page = curl_exec($ch);
此工作在我的本地计算机上,但不在远程服务器上。
远程服务器卷曲版本: 7.35.0 本地机器卷曲版本: 7.25.0
我真的被困了,谢谢你的帮助