In principle, each server (which means that any server-side program is responding to a client request) can send only one certificate . It will also send a certificate chain to the root certificate.
Using simple SSL / TLS, a handshake is performed before the client can indicate which domain he wants the page for (this is done in the HTTP header), so you have no chance to offer the right certificate.
A common solution is that the server has several IP addresses (one for each domain or at least one for each SSL certificate) and, therefore, can recognize by the IP address which certificate should be used. (I don't know how IIS handles this, though.)
The assignment of new IP addresses becomes more problematic with the increasing deficit of IPv4 addresses for these and other reasons. RFC 6066 (and its predecessors) defines the TSL name extension of the server (extension-ID 0), which allows the client to include the name of the requested server in the ClientHello message (which starts handshake), allowing the server to select the correct certificate for.
A serious certification agency will not give you a wildcard certificate for *.com or the like, since with such a certificate you can claim to be almost anyone. A certificate may contain several domain names, but I have no idea if there is an upper limit in the number of such (both for IIS and for ordinary clients).
source share