I want to apply a certificate to one of my sites on IIS. At the moment, I use a single IP address and use host-headers, to give them friendly names. Can I do this for my SSL site or do I have to use the server name?
I want to apply a certificate to one of my sites on IIS. At the moment, I use a single IP address and use host-headers, to give them friendly names. Can I do this for my SSL site or do I have to use the server name?
If each hostname is a subdomain of a single base domain (mail.domain1.com, www.domain1.com), you can use a wildcard certificate with SSL Host Headers. If they are different (domain1.com and domain2.com), you can use a Unified Communications certificate. See http://www.sslshopper.com/article-how-to-configure-ssl-host-headers-in-iis-6.html for how to set up SSL Host Headers in IIS.
Strictly speaking, you do not have to use a wildcard certificate (and many CAs would refuse to issue one), you could use a certificate with all your friendly host names listed in subjectAltName extension of the certificate. This way you could use one certificate for all your host names and avoid wildcard certificates. Anyway, HTTPS RFC recommends checking host name against subjectAltName if it is present, and not against certificate's subject.
So long as your certificate has a wildcard in it.
Yes, you can use a Name-based virtual hosting, but with some fairly strong provisos
If you want to embrace the bleeding edge and don't care about support for old browsers, you can use Server Name Indication (SNI) (if supported by your web server and clients). This means that the client will inform the server (when its first starting to talk about SSL) which name it believes it should be talking to.
If your list of sites doesn't change much, and you can't afford to rely on SNI, then you can use a SAN (Subject Alternate Name) certificate that matches multiple names. The names don't even to have any any common domain. (Have a look at the certificate for https://google.com/ and you'll see a lot of names listed)
If you want to have a lot of names (perhaps dynamically generated), then a wildcard certificate ("*.example.com", which would match anything under *.example.com). There are limitations to that though.
Otherwise, you need to have different IP addresses, and create suitable bindings in your webserver config to say that IP_x uses Certificate_x, which chews through public addresses and is the thing of last resort really.