NGINX два домена SSL представляет неправильный сертификат

У меня есть два домена, оба являются подстановочными знаками. Оба используют только https, например.

*. example. something.com * .example.com

Проблема в том, что nginx, кажется, всегда предоставляет сертификат по умолчанию (example.something.com), который недействителен, когда я перехожу на https://t12345.example.com .

В моем текущем файле nginx.conf есть следующие записи:

server {

    listen 443   default_server;
    server_name   example.something.com;

   ssl on;
   ssl_certificate "/etc/nginx/star.example.something.com.crt";
   ssl_certificate_key "/etc/nginx/star.example.something.com.key";
}

server {

    listen 443   ssl;
    server_name   example.com;

   ssl on;
   ssl_certificate "/etc/nginx/star.example.com.crt";
   ssl_certificate_key "/etc/nginx/star.example.com.key";
}

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

Любые идеи, почему он не выбирает второй сертификат?

-1
задан 27 March 2019 в 18:10
1 ответ

Вы не создали блок server , который соответствует имени хоста, к которому вы пытаетесь получить доступ, поэтому nginx обслуживает запрос, используя первый блок server с соответствующим прослушиванием директива.

Для решения проблемы создайте новый блок server или добавьте соответствующее имя_сервера в существующий блок server .

Если это действительно сертификаты с подстановочными знаками и вы хотите, чтобы единственный блок server обрабатывал все возможные имена, то вам, вероятно, следует обслуживать их с именем с подстановочными знаками, например:

server_name *.example.something.com;
1
ответ дан 5 December 2019 в 19:39

Теги

Похожие вопросы