-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

All,

On 5/25/16 11:30 AM, Christopher Schultz wrote:
> Mohanavelu,
> 
> On 5/25/16 10:21 AM, Mohanavelu Subramanian wrote:
>> I have Httpd process and Tomcat instances both running on 2 
>> different machines. The communication between them happens
>> through AJP protocol (mod_jk) which doesn't support encryption.
>> But we are using some features of mod_jk like automatic passing
>> of security information like SSL certificate to tomcat which in
>> turn is accessed in our application, validated and verified.
> 
>> Now, we have requirement to make the communication between them
>> as Secured. Since AJP doesn't support encryption, I came to know
>> that we need to use SSH, IPSec. But I could not find any proper
>> document to configure SSH or IPSec for AJP. Could please share if
>> you any.
> 
>> I have considered mod_proxy_http as well for supporting security 
>> which is easy to configure as well. But as I mentioned above we
>> are already making use mod_jk features. Again it will require
>> more efforts to migrate from mod_jk to mod_proxy_http.
> 
> It's not so bad switching from mod_jk to mod_proxy_http, but you
> are right that it does require re-configuration.
> 
> IPsec and SSH tunnels (using the ssh binary) are a total pain. We
> use stunnel, and it's fairly simple to set up. stunnel uses SSL/TLS
> to tunnel other protocols. It does *not* use the SSH protocol,
> which is critical to understanding how it works.
> 
> stunnel is a little more complicated than a normal protocol because
> it can be used in a number of different ways. I'll give some
> contrived examples to see how you can set it up in different ways,
> depending upon the support for encryption of the underlying
> protocol.
> 
> Let's say that you have an HTTPS server, but your client can't
> speak HTTPS for some reason. If you set up stunnel on the *client*
> side, you can connect locally to the stunnel server and have it
> establish a secure-connection to the remote server running HTTPS.
> Like this:
> 
> client -> localhost:12345 stunnel stunnel -> remote_host:443
> 
> As far as the client is concerned, it's using HTTP to talk to 
> localhost. But really it's talking to remove_host:443, so everyone
> is happy. (Yes, there are issues with URLs and redirects produced
> by the server, but that's out of scope for this discussion).
> 
> Let's take another example: you have clients that are
> HTTPS-capable, but the service you are running can only support
> HTTP for some reason, and you want to secure it. Set up stunnel on
> the *server*, then have your remote clients connect to *it* and
> tunnel to localhost. Like this:
> 
> client -> remote_host:443 stunnel localhost:8080
> 
> As far as the client is concerned, it's using HTTPS to communicate 
> with remote_host:443, but really it's connecting to
> remote_host:8080. (Yes, there are some issues with URLs and
> redirects but that's out of scope for this discussion.)
> 
> So what if the underling protocol doesn't support TLS at all?
> Well, then you have to set up stunnel on *both sides* of the
> tunnel, like this :
> 
> client (mod_jk) -> localhost:12345 stunnel -> remote_host:12345 
> stunnel -> localhost:8009
> 
> The setup for stunnel looks like this for the client (on the web
> server) :
> 
> sslVersion = all options = NO_SSLv2 options = NO_SSLv3 client =
> yes [ajp13s] accept=localhost:8009 connect=remote_host:8010
> 
> On the server, it looks like this:
> 
> sslVersion = all options = NO_SSLv2 options = NO_SSLv3 client = no 
> [ajp13s] accept=8010 connect=localhost:8009
> 
> On the web server, set your worker's host to "localhost" and port
> to 8009. mod_jk will connect to localhost:8009 which stunnel will
> accept and forward over the network to remote_host:8010 which will
> be accepted by stunnel on the server and forwarded to
> localhost:8009 on the server.
> 
> stunnel is great because it will auto-reconnect if the connection
> is dropped for some reason. Remember a few things with stunnel:
> 
> 1. Depending upon the version, you might only be able to use TLSv1 
> (and not e.g. TLSv1.2) 2. stunnel generally ignores certificate
> issues, such as expiration, etc. You might want to configure it
> with a little more care than the default. THIS ALSO MEANS IT DOES
> NOT AUTHENTICATE THE SERVER BY DEFAULT. You could accidentally
> connect to a malicious server.

I've added the above to the wiki:

https://wiki.apache.org/tomcat/AJP%20with%20stunnel

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAldFyYcACgkQ9CaO5/Lv0PBz4gCeJRdGjWsJepYG8Ozh1A/Z+d07
r6kAniN465Rw0kv/awlbxEamUPK9MmjI
=H8q/
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to