如何通过使用PHP实现OpenSSL的SSL_Write()

时间:2018-10-23 20:07:11

标签: php ssl openssl

我正在尝试使用PHP脚本连接到服务器。服务器由SSLv3设置,我想也许我需要使用SSL_Write()来处理将发送到服务器的消息。但是我没有在PHP中找到相关功能。因此,我想知道应该使用哪个功能。

1 个答案:

答案 0 :(得分:0)

您正在寻找的是TLS流传输。没有与SSL_Write()函数直接等效的函数; PHP没有实现SSL的功能接口。

这是使用TLS传输建立与HTTPS Web服务器的连接的简单示例。这不是理想的传输应用程序,因为PHP本身已经支持HTTPS文件包装器。我只是在这里使用它作为与可公开访问的TLS服务器进行交互的示例。

$fh = stream_socket_client("tls://example.com:443", $errno, $errstr);
if ($fh === false) {
    die("Failed to connect: error=$errno $errstr");
}
fwrite($fh, "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n"\ );
while (!feof($fh)) {
    print fgets($fh);
}

如果需要在TLS连接上设置特定选项,可以通过在建立连接之前创建流上下文(使用stream_context_create())来进行设置。有关更多详细信息,请参考PHP文档。