Нам нужны два ssl-сайта на сервере IIS. Я создал самоподписанный ssl-сертификат с помощью IIS для https://Django.mycompanyname.com:443
Однако нам также нужны https://site2.Django.mycompanyname.com:443 на том же сервере.
Возможно ли это без покупки SSL-сертификата с подстановочными знаками?
Технически это возможно - это называется указание имени сервера.
Первой версией IIS, поддерживающей эту функцию, является IIS 8.0 (см. Вот)
В вашем случае вам необходимо обновить свой сервер как минимум до Server 2012 или использовать обратный прокси-сервер, который может это предоставить.
Я бы порекомендовал использовать nginx в качестве обратного прокси-сервера - это обеспечивает дополнительные функции, такие как поддержка HTTP2 и повышение общей производительности обслуживаемого контента (nginx также делает довольно хорошие оптимизации на транспорте)
Чтобы дать краткое объяснение того, что здесь происходит на самом деле:
При использовании SNI согласование зашифрованного соединения изменяется таким образом, что клиент отправляет запрошенное имя хоста в самом начале соединения - поэтому старые клиенты не поддерживают это. Получив запрошенное имя хоста, сервер может решить, какой сертификат передан клиенту (при правильной настройке сертификат соответствует запрошенному имени хоста).
Имея сервер, который не предоставляет этот механизм, для каждого слушателя доступен только один сертификат, и этот сертификат выдается любому клиенту, который подключается. Следовательно, одна конечная точка (определяемая IP: Port) может отвечать только одним сертификатом (и / или быть привязанной к одному имени хоста).
IIS7 не предоставляет возможности SNI.
Это приводит к требованию либо сертификата, который содержит все запрошенные / обслуживаемые имена хостов (что может быть невозможно из-за количества хостов / разных клиентов), либо уникальной привязки (IP: порт) для каждой предлагаемой конечной точки SSL / TLS.