Назад | Перейти на главную страницу

Nginx - 2 сервера https на одном публичном IP

В настоящее время у меня есть несколько обычных http-серверов и 1 https-сервер. Я хотел бы добавить еще один https-сервер с таким же публичным IP.

У меня есть что-то похожее на

server {
    listen          443 ssl;
    server_name     sub1.example.com;
    ssl_certificate sub1.example.com.crt;
    ...
}
server {
    listen          443 ssl;
    server_name     sub2.example.org;
    ssl_certificate sub2.example.org.crt;
    ...
}

Проблема, с которой я сталкиваюсь, связана с IE8. Я получаю сертификат sub1 вместо сертификата sub2. В других браузерах такой проблемы нет. После прочтения http://nginx.org/en/docs/http/configuring_https_servers.html#name_based_https_servers Я вижу, что мне нужно сделать что-то подобное

server {
    listen          192.168.1.1:443 ssl;
    server_name     sub1.example.com;
    ssl_certificate sub1.example.com.crt;
    ...
}
server {
    listen          192.168.1.2:443 ssl;
    server_name     sub2.example.org;
    ssl_certificate sub2.example.org.crt;
    ...
}

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

У меня CentOS 6.5 и Nginx 1.6

Если вы действительно используете Windows XP, это не сработает. Нужна Vista или выше.

Я бы также дважды проверил, включен ли SNI, по той же ссылке, которую вы упомянули.

nginx -V

Первая опубликованная вами конфигурация обычно работает, если вы используете браузер, совместимый с SNI.

Если вы размещаете два поддомена одного домена, у вас не будет проблем, если вы получите многодоменный сертификат или сертификат с подстановочными знаками. В противном случае домен, не указанный в сертификате, выдаст предупреждение о несоответствии имени. При настройке доменов вы должны использовать один и тот же сертификат для обоих доменов.

Некоторые клиенты и серверы поддерживают согласование имени домена перед представлением сертификата. Это позволяет использовать два разных сертификата.