在PHP7.0中,当使用fsockopen连接打开https连接(托管在同一主机上),使用类似于
tls://foo.localhost
的主机名时,会出现以下错误:fsockopen(): Peer certificate CN="bar" did not match expected CN="foo.localhost"
连接未打开。
在 PHP 5.5 中可以正常工作(该版本的证书检查较为宽松)。我并不关心验证证书(此代码仅在单元测试和集成测试中连接到本地主机)。但是需要针对 http 和 https 进行测试。
我知道如何在使用 file_get_contents
时禁用这些检查。
在使用 fsockopen 时,如何禁用对等证书验证呢?
verify_peer
上下文选项 会影响这个吗? - Álvaro Gonzálezfsockopen
函数。 - juanleonfsockopen
中无法正常工作。很可能stream_socket_client
是正确的方法(我一开始有所犹豫,因为fsockopen
是我需要使用的不太现代的测试库的核心)。感谢您指出这一点。 - juanleon