我一直试图解决这个问题很长一段时间,但都没有成功。我们有两个外部服务/数据提供商试图将数据发送到我们的网站。一个发送我们创建的SOAP Web服务,另一个发送PHP POST,我们可以使用PHP输入流捕获。
SOAP Web服务是使用PHP编写的
网站和Web服务使用通配符SSL通过https
服务器是Windows服务器
当第一个服务/数据提供者试图通过调用我们的SOAP Web服务将数据推送给我们时,他们会收到以下错误。
****************************************************************
WSWS3713E: Connection to the remote host mysubdomain.mydomain.com failed.
Received the following error: Async IO operation failed, reason: RC: 104 Connection reset by peer
****************************************************************
此特定服务提供商使用IBM Websphere软件。下面是他们要求的标题......他们提供给我们
POST /clientswebservice/services/ClientsWS HTTP/1.1
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: IBM WebServices/1.0
Host: otwebdev:9080
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 683
Proxy-Authorization: Basic Og==
我们有另一个服务提供商将数据推送给我们,他们的数据是使用输入流的PHP POST变量捕获的。当他们尝试推送数据时,他们会收到以下错误。
**************************************************************
java.net.SocketException: Connection reset when doing
https://mywebsite.com/index.php/my_controller/my_function
************************************************************
但是,我们尚未确认他们用于发布数据的软件的信息。 第二个提供商的重要提示:我们之前在Linux服务器上,由于某些个人证书要求,我们最近搬到了Windows服务器。 当我们使用通配符SSL在Linux上时,第二个服务提供商用于发布数据。
但是它可以通过普通的http在Linux服务器上运行! 为了测试两个服务提供商,我们在Digitalocean上安装了Linux服务器。 我们在linux服务器上设置了我们在主服务器(windows服务器)上创建的Web服务。此服务器未安装SSL证书。然后我们要求服务/数据提供者发布数据。他们都能够正确发布数据,我们能够捕获它。
因此,我们在安装了SSL的Windows服务器上运行的PHP应用程序无法接受来自数据提供程序的数据,但是同一应用程序可以从未安装SSL的Linux服务器上的数据提供程序中捕获数据。此外,应用程序还可以在Linux服务器上通过SSL工作。
我试图尽可能地描述。关于可能出错的任何帮助或指针以及我应该深入研究的领域都受到高度赞赏。
谢谢。