我在生产系统上从 PHP 5.4 切换到 5.6(在共享主机提供商上运行)。我对特定网站的查询现在收到错误“stream_socket_client(): Peer certificate CN='(redacted).com' did not match expected CN='(redacted).com.au'”
网站所有者说他正在使用一个 Let's Encrypt 证书来覆盖多个域。
我的暂存系统(在 Synology NAS 上运行)也在运行 PHP 5.6,并且没有出现此错误。
我正在使用 HTTP_Request2 并尝试禁用验证,即:
$query = new HTTP_Request2($url, HTTP_Request2::METHOD_GET,
array('connect_timeout' => 2, 'timeout' => 4));
$query->setConfig(array(
'ssl_verify_peer' => FALSE,
'ssl_verify_host' => FALSE,
));
但是我仍然在生产系统上遇到错误。
在此应用程序中,安全性并不重要。我宁愿让我的代码容忍网站的证书,也不愿要求网站更改他们的证书(他们可能会拒绝这样做)。
我怎样才能使这项工作?
谢谢,
鲍勃