Getting a 400 error when connecting with a web-based client

We have openfire set up and have been using it for chats using JSJaC for sometime, but we wanted to start using Candy. I set it up and got it working, but at the same time we were getting our server hosting openfire upgraded to use HTTPS. We had also mistakenly been running both Apache and Nginx on our server, when we intended to be running just Nginx, so we disabled Apache. After the update, Candy and JSJaC both stopped working (as well as Converse, which I was also experimenting with). When it tries to connect, it sends the first request and gets back a response normally, but the second request gets back a 400 error. We tried reverting it to HTTP and it still is not working, and we have tried a number of other things as well, but we’re not sure what the root cause of the issue is.

The following are the results of signing in as a registered user of the server with a valid JID.

First request sent is:

The response is:


Second request sent is:


The response is:

<html> ``<head> ``<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/> ``<title>Error 400 </title> ``</head> ``<body> ``<h2>HTTP ERROR: 400</h2> ``<p>Problem accessing /http-bind//. Reason: ``<pre> Bad Request</pre></p> ``<hr /><i><small>Powered by Jetty://</small></i> ``</body> ``</html>

Thanks in advance.

Turns out the difficulty was with the removal of Apache. Here’s what my boss discovered: Openfire includes an Apache foundation project called Mina to authenticate the user’s ssl. Since Apache was installed, Mina was borrowing resources from Apache, and when we disabled Apache, Mina didn’t know that and was sending out the requests to Apache for verification, and then crashing because Apache was no longer running. The solution was to uninstall Apache and then restart Openfire.