<html>
<head>
<meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">01.11.2013 14:07, Никита Кардашин
пишет:<br>
</div>
<blockquote
cite="mid:CALA_TQjWBCAd78CsNgk=X_kVU1QKZ6CUkcVuDhJ=nj2KWq=t0A@mail.gmail.com"
type="cite">
<div dir="ltr">Так, я, видимо, не очень правильно описал проблему.
Попробую еще раз:
<div><br>
</div>
<div>- Есть домены:</div>
<div>domain1.tld</div>
<div>domain2.tld</div>
<div>domain3.tld</div>
<div><br>
</div>
<div>Сами главные домены хостятся где-то в другом, отличном от
нашего сервера, месте. Для каждого из них есть wildcard
SSL-сертификат.</div>
<div><br>
</div>
<div>На нашем сервере хостятся приложения, доступные по
поддоменам этих доменов (app1.domain2.tld, app10.domain3.tld,
etc). Для каждого приложения создан конфиг в sites-enabled с
описанием сервера (где задается и нужный SSL-сертификат, в
зависимости от того, в каком домене находится приложение).
Доступны они только по SSL (по сертификату *.domain.tld). Но
иногда приложения удаляются, а ссылки на них где-то живут. </div>
<div><br>
</div>
<div>Мне нужно каким-то образом реализовать возможность
редиректить все запросы к адресам а-ля <a
moz-do-not-send="true" href="https://appX.domainX.tld/">https://appX.domainX.tld/</a>,
в случае, если приложение уже не существует (т.е. сервер
appX.domainX.tld не описан в конфиге nginx).</div>
<div><br>
</div>
<div>Пока домен был один - я эту проблему решал просто,
определил в конфиге один сервер с признаком default и там уже
в location / осуществлял редирект на нужный сайт. Все
прекрасно работало.</div>
<div><br>
</div>
<div>А теперь сайтов стало три. В описании default-сервера я
могу задать только одну пару сертификат:ключ, соответственно,
те, кто придет по appX.domainX.tld (в случае, если домен
отличается от того, чей сертификат прописан) в default-сервер
получат в браузере ошибку (и не получат редирект).</div>
<div><br>
</div>
<div>Прописать для каждого из доменов сервер с server_name
*.domainX.tld я тоже не могу, т.к. тогда туда пойдут не только
запросы к несуществующим приложениям, а вообще ВСЕ запросы
(т.е. в приложение никто не попадет).</div>
<div><br>
</div>
<div>Т.е. проблема моя не в том, что мне нужно иметь несколько
SSL-сервисов на одном IP (это-то прекрасно работает, тут
проблем нет), а в том, что мне нужно каким-то образом иметь
несколько default-серверов с поддержкой SSL (либо иметь
возможность задавать приоритеты серверам, чтобы запрос всегда
попадал в более точный сервер (appX.domainX.tld), а не в
wildcard *.domainX.tld).</div>
<div><br>
</div>
<div>Как мне из этой ситуации выйти?</div>
</div>
</blockquote>
Из документации<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
<span style="color: rgb(0, 0, 0); font-family: Georgia, serif;
font-size: medium; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: justify; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
!important; float: none;">Более общее решение для работы
нескольких HTTPS-серверов на одном IP-адресе —<span
class="Apple-converted-space"> </span></span><a
href="http://en.wikipedia.org/wiki/Server_Name_Indication"
style="font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal; letter-spacing:
normal; line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">расширение
Server Name Indication протокола TLS</a><span style="color: rgb(0,
0, 0); font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal; letter-spacing:
normal; line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
display: inline !important; float: none;"><span
class="Apple-converted-space"> </span>(SNI, RFC 6066), которое
позволяет браузеру передать запрашиваемое имя сервера во время SSL
handshake, а значит сервер будет знать, какой сертификат ему
следует использовать для соединения. Однако, поддержка SNI
браузерами ограничена. Сейчас это поддерживается браузерами
начиная со следующих версий:<br>
</span><br>
<span style="color: rgb(0, 0, 0); font-family: Georgia, serif;
font-size: medium; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: justify; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
!important; float: none;">
<meta http-equiv="content-type" content="text/html;
charset=KOI8-R">
<span style="color: rgb(0, 0, 0); font-family: Georgia, serif;
font-size: medium; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
normal; orphans: auto; text-align: justify; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px; display:
inline !important; float: none;">Другим способом является
использование wildcard-сертификата, например<span
class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;">*.example.org</code><span style="color: rgb(0, 0, 0);
font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;">. Такой сертификат защищает все поддомены
указанного домена, но только на заданном уровне. Под такой
сертификат подходит<span class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;"><a class="moz-txt-link-abbreviated" href="http://www.example.org">www.example.org</a></code><span style="color: rgb(0, 0, 0);
font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;">, но не подходят<span
class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;">example.org</code><span style="color: rgb(0, 0, 0);
font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;"><span class="Apple-converted-space"> </span>и<span
class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;"><a class="moz-txt-link-abbreviated" href="http://www.sub.example.org">www.sub.example.org</a></code><span style="color: rgb(0, 0,
0); font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;">. Два вышеуказанных способа можно комбинировать.
Сертификат может одновременно содержать и точное, и wildcard
имена в поле SubjectAltName, например<span
class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;">example.org</code><span style="color: rgb(0, 0, 0);
font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;"><span class="Apple-converted-space"> </span>и<span
class="Apple-converted-space"> </span></span><code
style="color: rgb(0, 0, 0); font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: justify;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-stroke-width:
0px;">*.example.org</code><span style="color: rgb(0, 0, 0);
font-family: Georgia, serif; font-size: medium; font-style:
normal; font-variant: normal; font-weight: normal;
letter-spacing: normal; line-height: normal; orphans: auto;
text-align: justify; text-indent: 0px; text-transform: none;
white-space: normal; widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px; display: inline !important;
float: none;">.</span><br>
Боюсь что это не может быть, т.к. не могу все клиенты поддерживать
SNI.<br>
<br>
<br>
</span><br>
<pre class="moz-signature" cols="72">--
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор
Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог
тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru </pre>
</body>
</html>