Так, я, видимо, не очень правильно описал проблему.
Попробую еще раз:
- Есть домены:
domain1.tld
domain2.tld
domain3.tld
Сами главные домены хостятся где-то в другом, отличном от
нашего сервера, месте. Для каждого из них есть wildcard
SSL-сертификат.
На нашем сервере хостятся приложения, доступные по
поддоменам этих доменов (app1.domain2.tld, app10.domain3.tld,
etc). Для каждого приложения создан конфиг в sites-enabled с
описанием сервера (где задается и нужный SSL-сертификат, в
зависимости от того, в каком домене находится приложение).
Доступны они только по SSL (по сертификату *.domain.tld). Но
иногда приложения удаляются, а ссылки на них где-то живут.
Мне нужно каким-то образом реализовать возможность
редиректить все запросы к адресам а-ля
https://appX.domainX.tld/,
в случае, если приложение уже не существует (т.е. сервер
appX.domainX.tld не описан в конфиге nginx).
Пока домен был один - я эту проблему решал просто,
определил в конфиге один сервер с признаком default и там уже
в location / осуществлял редирект на нужный сайт. Все
прекрасно работало.
А теперь сайтов стало три. В описании default-сервера я
могу задать только одну пару сертификат:ключ, соответственно,
те, кто придет по appX.domainX.tld (в случае, если домен
отличается от того, чей сертификат прописан) в default-сервер
получат в браузере ошибку (и не получат редирект).
Прописать для каждого из доменов сервер с server_name
*.domainX.tld я тоже не могу, т.к. тогда туда пойдут не только
запросы к несуществующим приложениям, а вообще ВСЕ запросы
(т.е. в приложение никто не попадет).
Т.е. проблема моя не в том, что мне нужно иметь несколько
SSL-сервисов на одном IP (это-то прекрасно работает, тут
проблем нет), а в том, что мне нужно каким-то образом иметь
несколько default-серверов с поддержкой SSL (либо иметь
возможность задавать приоритеты серверам, чтобы запрос всегда
попадал в более точный сервер (appX.domainX.tld), а не в
wildcard *.domainX.tld).
Как мне из этой ситуации выйти?