Можно ли разместить несколько арендаторов в одном экземпляре приложения ASP.NET через SSL? - PullRequest
2 голосов
/ 23 сентября 2008

У меня есть приложение ASP.NET, в котором будут размещаться несколько арендаторов (стиль «программное обеспечение как услуга»). У каждого арендатора будет собственное доменное имя (www.mydomain.com, www.yourdomain.com) и собственный сертификат SSL.

Есть ли способ разместить приложение таким образом, чтобы все арендаторы находились в одном приложении экземпляр ?

  • Я знаю, что у вас может быть несколько сайтов IIS, указывающих на одно и то же общее местоположение, но это не сработает - это не тот же экземпляр . Это разные экземпляры одного и того же приложения .
  • Я также знаю, что вы можете использовать сопоставление заголовка узла SSL с подстановочными сертификатами, но это не сработает, поскольку все клиенты должны быть поддоменами одного и того же основного домена - yourdomain.commondomain.com, mydomain.commondomain.com , Чтобы решение было действительным, каждый должен иметь свое собственное доменное имя, а не поддомен. (В идеале каждый арендатор также может использовать сертификат EV, и вы не можете иметь сертификаты EV подстановочного знака.)

Ответы [ 2 ]

3 голосов
/ 23 сентября 2008

Проблема в том, что классический SSL требует, чтобы сертификат был представлен до того, как веб-браузер указал, какой хост он хочет использовать. Поэтому вы можете настроить только один сертификат для каждой комбинации IP / порт.

Существует расширение для TLS, называемое Индикация имени сервера , которое позволяет браузеру указывать, с каким логическим сервером он хочет общаться. Эта функция поддерживается с IIS 8.0 (Windows Server 2012) .

Подстановочные знаки работают, потому что сам сертификат говорит, что он действителен для всех серверов в этом домене.

1 голос
/ 23 сентября 2008

Вы ограничены только IIS - или вариант установки мягких / жестких прокси-серверов или оборудования для переключения контента также может быть?

Считая, что вы можете прекратить SSL на прокси-сервере или переключателе содержимого - затем преобразовать запрос в свой собственный внутренний URL-адрес.

например. foo.com/x и bar.com/y переводятся в myapp / x и myapp / y соответственно под капотом - передавая оригинальное имя хоста в заголовках запроса.

...