I'm developing a web application that runs on a server local to the same network as the client- basically, instead of a central web server, each customer site will have its own server hosted on the network. The server is CentOS and the clients will be any web browser.
I would like to encrypt the communications between the web browser and the server on the network so that it is difficult for others on the network to see the communications between the client and the server. However, since the client is not going to be accessing the server via a public URL, my understanding is that I cannot use a signed SSL certificate, leaving me open to SSL certificate injection attacks.
I also don't have control over the network these systems are being installed in, so I cannot reliably do MAC filtering or IP range filtering (although these are largely ineffective anyway so that is no big loss).
My questions are: 1. Am I understanding this properly, or am I able to use SSL after all? If so, how? 2. Other than an SSL certificate, what options do I have? I would rather not resort to rolling my own encryption as that would have to be implemented in JavaScript, which would leave me open to an attacker just rewriting the encryption code as its being delivered to the browser.
Thanks for your help/comments!