简介: 有没有一种方法可以强制PHP中的内置SoapClient-class通过HTTPS连接到具有无效证书的服务器?
我为什么要这样做? 我已经在没有DNS条目或证书的服务器上部署了新应用程序。我想 在 设置DNS条目和修复证书 之前 尝试使用SoapClient连接到它,而最合理的方法似乎是使客户端在测试过程中忽略证书。
我是否没有意识到这是巨大的安全风险? 这仅用于测试。服务投入生产后,将有一个有效的证书,并且客户端将被迫对其进行验证。
SoapClient在其参数中接受 流上下文 ,您可以创建自己。这样,您可以控制传输层的几乎每个方面:
SoapClient
$context = stream_context_create([ 'ssl' => [ // set some SSL/TLS specific options 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]); $client = new SoapClient(null, [ 'location' => 'https://...', 'uri' => '...', 'stream_context' => $context ]);