LinuxForum.Fans
Тема

nginx ssl-заглушка

Автор: vinner 6 сообщений 1178 просмотров
#317872

Добрый день. Прошу помощи в следующем вопросе. nginx работает как frontend к apache. на сервере есть несколько сайтов, для которых настроена поддержка ssl. nginx.conf

text
# 
server {
     listen 80;
         listen 443 ssl;
     ssl    on;
         ssl_certificate         /etc/ssl/certs/domain_name.crt;
         ssl_certificate_key     /etc/ssl/private/domain_name.key;
         server_name domain_name www.domain_name;

if ( $scheme = "http" ) { rewrite ^/(.*)$ https://$host/$1 permanent; } access_log /var/www/html/domain_name/access.log; error_log /var/www/html/domain_name/error.log; root /var/www/html/domain_name; location / { proxy_pass http://127.0.0.1:8080/; } }

Для 80 порта есть заглушка nginx.conf

text
server {
      listen 80 default;
      server_name localhost;
       deny all;
}

Но, если попытаться зайти по https на другие сайты сервера(не ssl), то браузер получит сертификат сервера по умолчанию, т.е. первого ssl-сайта в конфиге, независимо от запрашиваемого имени сервера и перенаправит на apache. Подскажите, как сделать заглушку аналогичную 80 порту.

#317901

убирайте

"vinner⇓" написал:
ssl on;

у Вас же уже настроен ssl

"vinner⇓" написал:
listen 443 ssl;

P.S.
ssl on включает ssl на обоих портах. http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen. Стоит использовать не

"vinner⇓" написал:
listen 80 default;

а
listen 80 default_server

#317904
CryptSpirit написал:
убирайте
[quote="vinner⇓"] ssl on;

у Вас же уже настроен ssl

"vinner⇓" написал:
listen 443 ssl;

P.S.
ssl on включает ssl на обоих портах. http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen. Стоит использовать не

"vinner⇓" написал:
listen 80 default;

а
listen 80 default_server[/quote]

Все поменял, проблема осталась.

#317907
"vinner⇓" написал:
Но, если попытаться зайти по https на другие сайты сервера(не ssl), то браузер получит сертификат сервера по умолчанию

Пропустил. Так все четко работает.

Пробуйте вместо

"vinner⇓" написал:
server { listen 80 default; server_name localhost; deny all; }
text

server {
      listen 80 default_server;
      listen 443 default_server;
      server_name _;
       deny all;
}
#317908
CryptSpirit написал:
[quote="vinner⇓"]Но, если попытаться зайти по https на другие сайты сервера(не ssl), то браузер получит сертификат сервера по умолчанию

Пропустил. Так все четко работает.

Пробуйте вместо

"vinner⇓" написал:
server { listen 80 default; server_name localhost; deny all; }
text

server {
      listen 80 default_server;
      listen 443 default_server;
      server_name _;
       deny all;
}

[/quote]

Без результата, зайдя по https://server-ip. уперед подключением браузер, конечно ругается, что сертификат не подходящий, но устанавливает соединение с дефолтным виртуальным хостом апача.

#317935
text

cd /etc/nginx
grep listen * -r
grep server_name * -r
Войдите или зарегистрируйтесь, чтобы ответить.