Björn,

On 10/21/15 2:47 PM, Björn Raupach wrote:
>> On 21 Oct 2015, at 20:42, Mark Thomas <ma...@apache.org> wrote:
>>
>> On 21/10/2015 16:27, Björn Raupach wrote:
>>> Dear group,
>>>
>>> it would be nice if anyone knows, if my planned setup is going to work.
>>>
>>> At the moment we are having two services (web apps) at two different 
>>> machines and hostnames. Lets say bob.example.com and alice.example.com 
>>>
>>> bob.example.com runs without SSL and deploys the web app at the root 
>>> context. We just throw a ROOT.war in /webapps.
>>>
>>> alice.example.com needs SSL at all times. It currently does not run with 
>>> the root context but we would like to. So another ROOT.war. We have an SSL 
>>> cert for alice.example.com
>>>
>>> I want both applications to run on a single Tomcat instance with Virtual 
>>> Hosting. Virtual Hosting with Tomcat that is. I am comfortable with setting 
>>> up Virtual Hosting, but I am just not sure about the SSL part. Does the 
>>> choice between IP-based or Hostname matter? bob.example.com might need SSL 
>>> support in the future.
>>>
>>> We are using Amazon AWS if that is important. So I could get another 
>>> Elastic IP. We are working with the latest Apache Tomcat 8 and the latest 
>>> JDK on the server machines.
>>>
>>> Sorry if this is not 100% Tomcat related.
>>
>> Currently it will work if both hosts can share the same certificate
>> because they share a connector and (currently) a connector can only have
>> a single certificate.
> 
> How can both hosts share the same certificate?

I think he meant that if both sites "can" share a certificate, the whole
thing becomes easier. For example, a certificate with a
subject-alternative-name, or a wildcard certificate.

Recent versions of Java support SNI which should allow multiple
certificates to be used, but I'm not sure if Tomcat supports that
directly right now (see Mark's comments about multi-certificate support
in the very near future).

> Do I need a SAN certificate or can I just run with the cert for
> alice.example.com <http://alice.example.com/> and have to live with any
> cert errors on bob.example.com <http://bob.example.com/>?

Well, those are both options, but the first one costs a heap of money
and the second is unpalatable for users (errors = bad).

>> As of 9.0.x (and hopefully eventually back-ported to 8.x) you'll be able
>> to have per host certs. There should be a 9.0.0-RC1 in the next week or so.

This is the "holy grail" of TLS certificate support -- one that I hope
will be able to be back-ported without too much pain for (probably) Mark.

IIRC, this will also allow *either* PEM-file-based setup *or*
keystore-based setup regardless of the crypto implementation (OpenSSL
vs. JSSE) being used. I personally detest keystores because they are so
fault-intolerant, but they do have the advantage of being able to say
"use any matching certificate in this blob" to get work done.

So... if you are willing to wait a bit (9.0-RC1 in the next week? woah!)
for a back-port from trunk into the 8.0.x branch, then that's probably
your best bet. If you absolutely need to get this out right away, I see
only a few options:

1. Wildcard cert
2. Cert with a SAN
3. Front each service with AWS ELB
4. Front both services with httpd, which supports SNI
5. Use two <Connector>s, each on a different port
6. Use two <Connector>s, each on a different interface

That last one (6) might not be possible on AWS, since the host is itself
mostly unaware of the public IP address external clients use to access
it. (I have an EC2 instance with both internal and external IPs, and I
only have "lo" and "eth0" interfaces, so I couldn't bind a <Connector>
to the public IP's interface).

Option #3 might be the best for you in the short-term (and possibly the
long-term), because it allows you to easily configure TLS *and*
port-redirection without the complexity of a whole server+httpd instance
to maintain. It will also allow you to grow your service trivially in
the future should you choose to do so. The downside is that you pay for
the ELB by the bit-transferred. It's up to you to decide how much you're
willing to pay for that kind of thing.

Hope that helps,
-chris

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

Reply via email to