Настройка SSL с Nginx - PullRequest
       3

Настройка SSL с Nginx

0 голосов
/ 18 января 2020

Теперь это может быть очень простой проблемой, но я не могу понять, как заставить SSL работать с Nginx. Я перечислю, что я сделал до сих пор:

  1. Использовал certbot для создания файла fullchain.pem и privkey.pem
  2. Добавил следующий код в /etc/nginx/conf.d/pubgstats.info

    server {
    
    
      listen 80;
      server_name pubgstats.info www.pubgstats.info;
      location '/.well-known/acme-challenge' {
            root /srv/www/pubg-stats;
      }
    
      location / {
            proxy_pass http://localhost:4200;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
      }
      location /secure {
            auth_pam "Secure zone";
            auth_pam_service_name "nginx";
      }
    
    }
    
    server {
        listen 443;
        ssl on;
        ssl_certificate /srv/www/pubg-stats/certs/fullchain.pem;
        ssl_certificate_key /srv/www/pubg-stats/certs/privkey.pem;
        server_name pubgstats.info www.pubgstats.info;
        location / {
                root /srv/www/pubg-stats/;
        }
    }
    

    Насколько я понимаю, конфигурация прослушивает порт 80 и обновляет HTTP-запрос до HTTPS. Код был в основном взят из этой статьи . Я добавил часть конфигурации SSL, как указано здесь . Сейчас посещение сайта по HTTP работает. На HTTPS соединение сбрасывается. Что мне не хватает в конфигурации и как лучше всего настроить SSL с Nginx в этом случае?

1 Ответ

1 голос
/ 18 января 2020

Я не понимаю, почему вы не добавили это в /etc/nginx/nginx.conf, но проблема в том, что вы объявили несколько блоков server для одного сервера. В этом случае nqinx обычно выбирает первое в зависимости от различных критериев.

В этой конфигурации nginx с использованием SSL по умолчанию. Если это не то, что вы хотите, удалите default_server. Вам не нужен ssl on, так как теперь он устарел и заменен параметром ssl в директиве listen.

server {
  listen 80;
  listen 443 default_server ssl;
  ssl_certificate /srv/www/pubg-stats/certs/fullchain.pem;
  ssl_certificate_key /srv/www/pubg-stats/certs/privkey.pem;
  server_name pubgstats.info www.pubgstats.info;
  location '/.well-known/acme-challenge' {
        root /srv/www/pubg-stats;
  }

  location / {
        proxy_pass http://localhost:4200;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
  }
  location /secure {
        auth_pam "Secure zone";
        auth_pam_service_name "nginx";
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...