I have been trying to solve this problem for quite some time but have been unsuccessful. We have two external service/data providers trying to send data to our website. One sends over SOAP web service we created and the other over PHP POST which we can capture using the PHP input stream.
The SOAP web-service is written using PHP
The website and web service is over https using a wildcard SSL.
The server is a Windows server
When the first service/data provider try to push data to us by calling our SOAP web service they get the following error.
****************************************************************
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
****************************************************************
This particular service provider uses IBM Websphere software. below is the header of their request... which they provided us
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==
We have another service provider pushing data to us, and their data is captured using PHP POST variable of the input stream. They get the following error, when they try to push data.
**************************************************************
java.net.SocketException: Connection reset when doing
https://mywebsite.com/index.php/my_controller/my_function
************************************************************
However we don't have confirmed information as to what software they use to post the data. Important note for the second provider: We were on a Linux server before, we moved to a Windows server recently due to some personal certificate requirement. The second service provider used to post the data just fine when we were on Linux with the wildcard SSL.
But it works on a linux server over plain http!
To test both the service providers we put up a Linux server on Digitalocean.
We set up the web services we have created on our main server (the windows server) here on the linux server. This server did not have a SSL cert installed. We then asked both the service/data providers to post data. And both of them were able to post data correctly and we were able to capture it.
So we have a PHP application running on Windows server with SSL installed unable to accept data from the data provider, but the same application can capture the data from the data providers on a Linux server which does not have a SSL installed. And also the application used to work fine over SSL on Linux server.
I have tried to describe as much as possible. Any help or pointer on what might be wrong and what areas I should dig into is highly appreciated.
Thank you.