В принципе, каждый сервер (то есть независимо от того, какая программа на стороне сервера отвечает на запрос клиента ) может отправлять только один сертификат . Он также отправит цепочку сертификатов до корневого сертификата.
При использовании простого SSL / TLS рукопожатие выполняется до того, как у клиента появится возможность указать, для какого домена он хочет страницу (это делается в заголовке HTTP), поэтому у вас нет шансов предложить правильный сертификат.
Распространенным решением является то, что сервер имеет несколько IP-адресов (по одному для каждого домена или, по крайней мере, один для каждого SSL-сертификата) и, таким образом, может распознать по IP-адресу, какой сертификат следует использовать. (Хотя я не знаю, как IIS справляется с этим.)
Назначение новых IP-адресов становится более проблематичным из-за растущей недостаточности адресов IPv4, по этой и другим причинам RFC 6066 (и его предшественники) определяет имя сервера расширение TSL ( extension-ID 0), который позволяет клиенту включать требуемое имя сервера в сообщение ClientHello (которое запускает рукопожатие), позволяя серверу выбрать правильный сертификат для.
Ни одно серьезное сертификационное агентство не выдаст вам сертификат подстановочного знака для *.com
или аналогичный, поскольку с таким сертификатом вы можете претендовать почти на любого. Сертификат может содержать несколько доменных имен, но я понятия не имею, существует ли верхний предел их количества (как для IIS, так и для обычных клиентов).