Page 1 of 1
SSL
Posted: Sun Jul 21, 2013 11:20 am
by toplevelhost
При включении SSL, сертификат устанавливается на nginx и открывается порт 443
Но как сделать, чтобы сертификат был только на apache? А nginx только пропускал через себя 443 порт ?
Иными словами, как сделать что бы nginx принимал 443 порт, обрабатывал правила и перенаправлял на apache? Что бы сертификаты стояли только со стороны бэкенда (апаче)
Это мне нужно, если я использую несколько фронтэндов и один бэкенд.
Спасибо.
Re: SSL
Posted: Sun Jul 21, 2013 11:26 am
by skid
Чтобы обработать https запрос у nginx-а тоже должны быть установлены сертификаты.
Re: SSL
Posted: Sun Jul 28, 2013 8:34 am
by XakRu
toplevelhost wrote:При включении SSL, сертификат устанавливается на nginx и открывается порт 443
Но как сделать, чтобы сертификат был только на apache? А nginx только пропускал через себя 443 порт ?
Иными словами, как сделать что бы nginx принимал 443 порт, обрабатывал правила и перенаправлял на apache? Что бы сертификаты стояли только со стороны бэкенда (апаче)
Это мне нужно, если я использую несколько фронтэндов и один бэкенд.
Спасибо.
читайте подробнее о технологии ssl.
SSL реализуется поверх любого другого протокола транспортного уровня, таких как HTTP, FTP, SMTP, NNTP и XMPP.
Сначала устанавливается зашифрованное соединение между клиентом и серером,а затем уже идет диалог HTTP, FTP ...
Т.е. смысла нет устанавливать ssl между nginx и apache, и вто же время пускать незашифрованный трафик клиенту.
И да, еще. Как обстоят дела у весты по поводу ssl сертиффикатов, два разных сертификата ведь не смогут работать на одном сервере? или использовать разные порты? тогда теряем 443 порт как для ссл. Как в этом случае разруливает веста?, на генту вики есть статьи по объоду ограничений, но тогда теряется сама суть ssl.
Re: SSL
Posted: Mon Jul 29, 2013 4:06 am
by demian
XakRu wrote:toplevelhost wrote:При включении SSL, сертификат устанавливается на nginx и открывается порт 443
Но как сделать, чтобы сертификат был только на apache? А nginx только пропускал через себя 443 порт ?
Иными словами, как сделать что бы nginx принимал 443 порт, обрабатывал правила и перенаправлял на apache? Что бы сертификаты стояли только со стороны бэкенда (апаче)
Это мне нужно, если я использую несколько фронтэндов и один бэкенд.
Спасибо.
читайте подробнее о технологии ssl.
SSL реализуется поверх любого другого протокола транспортного уровня, таких как HTTP, FTP, SMTP, NNTP и XMPP.
Сначала устанавливается зашифрованное соединение между клиентом и серером,а затем уже идет диалог HTTP, FTP ...
Т.е. смысла нет устанавливать ssl между nginx и apache, и вто же время пускать незашифрованный трафик клиенту.
И да, еще. Как обстоят дела у весты по поводу ssl сертиффикатов, два разных сертификата ведь не смогут работать на одном сервере? или использовать разные порты? тогда теряем 443 порт как для ссл. Как в этом случае разруливает веста?, на генту вики есть статьи по объоду ограничений, но тогда теряется сама суть ssl.
ограничения колличества ssl сертификатов существуют для apache с установленным модулем mod_ssl - 1 сервификат на один физический IP, обходится установкой модуля gnu_tls
nginx изначально использует tls ограничений нет.
Re: SSL
Posted: Wed Jul 31, 2013 6:03 pm
by XakRu
Вы наверное не совсем в теме. Я же писал что ssl устанавливается до того как сервер получит заголовок HOSTNAME
Так же прилагаю выдержку с оф. докeментации nginx
Code: Select all
Выбор HTTPS-сервера по имени
Типичная проблема возникает при настройке двух и более серверов HTTPS, слушающих на одном и том же IP-адресе:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
...
}
server {
listen 443 ssl;
server_name www.example.org;
ssl_certificate www.example.org.crt;
...
}
В такой конфигурации браузер получит сертификат сервера по умолчанию, т.е. www.example.com, независимо от запрашиваемого имени сервера. Это связано с поведением протокола SSL. SSL-соединение устанавливается до того, как браузер посылает HTTP-запрос, и nginx не знает имени запрашиваемого сервера. Следовательно, он лишь может предложить сертификат сервера по умолчанию.
Наиболее старым и надёжным способом решения этой проблемы является назначение каждому HTTPS-серверу своего IP-адреса:
server {
listen 192.168.1.1:443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
...
}
server {
listen 192.168.1.2:443 ssl;
server_name www.example.org;
ssl_certificate www.example.org.crt;
...
}
Re: SSL
Posted: Wed Jul 31, 2013 6:06 pm
by XakRu
предвкушаю что снова увижу надпись о gnu_tls.
Но здесь ведь пользователь не защищен от атаки MITM. Да и видно на какой домен пользователь идет. Тем более в связи с новыми законами которые обсуждают чиновники.