[H-GEN] https + apache

Russell Stuart rstuart at lubemobile.com.au
Fri Jul 18 03:26:35 EDT 2003


[ Humbug *General* list - semi-serious discussions about Humbug and     ]
[ Unix-related topics. Posts from non-subscribed addresses will vanish. ]

I have been asked to set up a secure web page, ie one accessed with
https.  I am using Apache 1.3.  I have succeeded in accessing the page
using https, so I have the basics right.  There are a number of issues
outstanding however.  If anyone could shed some light on them I would be
grateful.

1.  I have a number of virtual hosts on the server.  These are "Named
    Virtual Hosts".  Ie, they all share the same IP and so are
    differentiated by host name only.  It appears this does not work
    when using SSL - you can only use IP-based virtual hosts with it.

    I am guessing this is because:
      a.  The SSL protocol is negotiated before any data is sent, and
      b.  Part of the SSL protocol negotiation is an X509 cert, and
      c.  The X509 cert must contain the HTTP servers host name.
    This implies that HTTP server must know what virtual host is being
    accessed before any data is exchanged, and in particular before
    it sees the "Host: xxx" directive in the HTTP header.  There is only
    one way it can do this: via the incoming IP address (addr,port)
    the client used.

    If my understanding is right then there is no fix for this (so
    there is no point looking for one).

2.  This can be classified under the heading: "Faint Hope".  In the
    user manual for mod_ssl it has a diagram that implies sending the
    servers X509 cert is optional.  See figure 1 in:
      http://www.modssl.org/docs/2.8/ssl_intro.html
    I am guessing it is optional for SSL, but HTTPS requires it.  Is
    that right?

    All my questions arise from this f#*$)*! X509 cert.  If I could get
    rid of it then life would be easy.  Its all the more frustrating
    because I don't see how it raises the security of HTTPS.  It sole
    function seems to be yet another dismal failure from Netscape in
    its attempt to build a business.

3.  For now I have created a self signed X509 cert that expires in
    2038.  (Using openssl I can't create one that works beyond that
    magical date.  Lets see .. yes I will be retired by then, so that 
    is OK.)   And as a consequence my browser pops window that says
    its "not safe" (as it would be any safer if some company on the
    other side of the globe had signed it).

    If I don't want the "unsafe" message then I need a trusted root CA
    to sign my cert.  I can see 3 ways of going about this (are there
    any more?).  Way 1 would be to become issue my own root cert - ie
    become a CA myself.  I could then sign as many certs as I liked
    without having to pay for them.  This would be nice, as I have
    a number of other servers (pop3s, imaps) on other hosts that should
    be using "real" certs, not self signed ones.  It bugs me no end to
    have my user's pop3s client say _my_ pop3s server is unsafe.  This
    raises a number of issues.  How to I create a root cert (is there
    a HOWTO somewhere?)  How do I download the cert into the browser -
    is there a special mime type?  Do I need to provide anything else
    (such as a some sort of connection to a CRL server, or something)?

4.  The downside to "Way 1" is that the users Browser should bring up
    lots of flashing red lights when they install the my shiny new root
    cert.  You average J.Citizen would be deterred by that (I hope).
    One way round that would be to get an existing root provider (such
    as VeriSign) to sign my "root cert".  Do they do this sort of
    thing - ie provide a cert which I can use to sign other certs?  If
    so, do browsers allow such certs to be installed without too much
    fuss?  My guess would be no root CA's don't provide such a service,
    or if they did it would cost an arm and a leg.  And even then the
    Browsers would be leery of it.

5.  Way 3 is simple, and is probably what I have to do.  Its just that
    it irks me a lot that I am forced to do it.  I have to pay VeriSign
    or some similar company money every year each host / server I need
    a cert for.

If there was some technical advantage for having the X509 cert embedded
in SSL then my level of frustration would drop.  I am dammed if I can
see it however.  Can anybody tell me how having it there raises the
security of SSL as it is used in the current crop of HTTPS / POP3S /
IMAPS / SMTPS clients?

--
Russell

--
* This is list (humbug) general handled by majordomo at lists.humbug.org.au .
* Postings to this list are only accepted from subscribed addresses of
* lists 'general' or 'general-post'.  See http://www.humbug.org.au/



More information about the General mailing list