ArtyomovAnton
@ArtyomovAnton
PHP и всё что рядом

Почему NGINX использует сертификат и ключ первого хоста?

Настроил 2 конфига NGINX для https соединения.
Вот конфиг domen1 nginx ssl config
Второй аналогичный.

Так вот и для domen1 и для domen2 nginx использует сертификат от domen1
Если я переименовываю конфиг domen2, так что бы он был выше конфига domen1, то для обоих доменов используется сертификат от domen2.

Что я не так сделал? Ведь в каждом конфиге указан свой server_name.
  • Вопрос задан
  • 2539 просмотров
Решения вопроса 1
@Samuel_Leonardo
Нужно, что nginx был собран с SNI
узнать можно так :
nginx -V
должно выдасть
TLS SNI support enabled
также openssl должен быть собран с enable-tlsext,

либо используйте разные ip для каждого домена
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Покажите оба конфига, nginx абсолютно нормально обрабатывает ситуацию разные сертификаты для разных доменов, в общем случае настраивается так:
server {
    listen              443 ssl;
server_name domain1;
        ssl                     on;
        ssl_certificate         /etc/nginx/ssl/domain1.crt;
        ssl_certificate_key     /etc/nginx/ssl/domain1.key;
}
server {
    listen              443 ssl;
        server_name domain2;
        ssl                     on;
        ssl_certificate         /etc/nginx/ssl/domain2.crt;
        ssl_certificate_key     /etc/nginx/ssl/domain2.key;
}
server {
        listen          80;
        server_name_in_redirect     off;
        server_name ~^(?:www\.)?(?P<host_wo_www>.+)$;
        return 301 https://$host_wo_www$request_uri;
}

Для каждого домена свой сертификат на 443 порту и общая редиректилка с 80 порта на 443.
Ответ написан
ArtyomovAnton
@ArtyomovAnton Автор вопроса
PHP и всё что рядом
У меня TLS SNI support disabled
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы