<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">3 марта 2015 г., 20:30 пользователь ingtar <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Тогда я ничего не понимаю :) Можно я вам расскажу свое понимание работы<br>
nginx, а вы меня поправите? Может быть у меня фундаментальная дара в<br>
знаниях, я такое не отрицаю :)<br>
<br>
Есть два файла конфигов в директории conf.d<br>
<br>
example1.conf<br>
server {<br>
listen *:80;<br>
listen *:443 ssl;<br>
server_name example1;<br>
ssl_certificate 1.crt;<br>
ssl_certificate_key 1.key;<br>
}<br>
<br>
example2.conf<br>
server {<br>
listen *:80;<br>
listen *:443 ssl;<br>
server_name example2;<br>
ssl_certificate 1.crt;<br>
ssl_certificate_key 1.key;<br>
ssl_client_certificate ca.crt;<br>
ssl_verify_client on;<br>
}<br>
<br>
Клиент устанавливает с сайтом example1 соединение. Запрос с хэдером этого<br>
сайта приходит на сервер, обслуживающий указанный ИП адрес (Client Helo).<br>
Nginx принял запрос, по хедеру сравнил server_name и стал обрабатывать этот<br>
запрос по правилам конфига example1 (т.к listen равноправные, приоритет<br>
отдается конфигу с правильынм server_name) Сервер отправляет свое Helo с<br>
открытым ключем, клиент его проверяет и если все ок - оба договариваются об<br>
алгоритмах шифрования и начинается обмен данными.<br>
<br>
Это если без особых подробностей.<br>
Для конфига example2 все тоже самое, только сервер запрашивает сертификат<br>
клиента и если его нет - 400 ошибка.</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
В итоге у меня получается два сайта - первый работает без клиентских<br>
сертификатов, второй с ними..<br></blockquote><div><br></div><div>и вся эта магия ломается если клиент не передал заголовок Host</div><div> </div></div></div></div>