Nginx отказывается слушать порт 443 - PullRequest
0 голосов
/ 12 февраля 2020

У меня проблема с nginx, когда он не будет прослушивать порт 443.

Прослушивание через порт 80 в порядке. Я включил фрагмент моей конфигурации ниже:

server {
       listen 443 ssl default_server;
       listen [::]:443 ssl default_server;

       ssl on;
       ssl_certificate     /var/www/certs/server.pem;
       ssl_certificate_key /var/www/certs/server.key;

       server_name server;

       root /var/www/server;

       access_log /var/log/nginx/server/access.log;
       error_log  /var/log/nginx/server/error.log;

       index index.php;
}

не уверен, где я иду не так. Все, что я проверил, показывает, что оно должно работать.

Я нахожусь на Ubuntu 18.04 с nginx 1.14.0, нет ни брандмауэра ни в системе, ни между мной и сервером. Я проверил конфиг несколько раз с nginx -t и systemctl reload ed. без изменений, порт не открывается для меня.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Добавьте эти блоки сервера.

Это для перенаправления http на https

server {
   listen 80;
   server_name example.com; 
   location / {
          return 301 https://$host$request_uri;
   }
}

Ваш основной блок с ssl

server {
    listen 443 ssl ;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  
    index index.html index.htm index.nginx-debian.html;
    server_name example.com; 
    location / {
    proxy_pass http://localhost:5003; // Your port goes here
    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;
}
}

Также проверьте, открыты ли порты

0 голосов
/ 12 февраля 2020

Для настройки HTTPS-сервера параметр ssl должен быть включен для прослушивающих сокетов в блоке сервера, а также должны быть указаны местоположения сертификата сервера и файлов закрытого ключа:

server {
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;
...

}

Один сервер HTTP / HTTPS Можно настроить один сервер, который обрабатывает запросы HTTP и HTTPS:

server {
listen              80;
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
...

}

До версии 0.7.14 SSL не мог быть включен выборочно для отдельных сокетов прослушивания, как показано выше. SSL может быть включен только для всего сервера с использованием директивы ssl, что делает невозможным настройку одного HTTP / HTTPS-сервера. Параметр ssl директивы listen был добавлен для решения этой проблемы. Таким образом, использование директивы ssl в современных версиях не рекомендуется.

Серверы HTTPS на основе имен Общая проблема возникает при настройке двух или более серверов HTTPS, прослушивающих один IP-адрес:

server {
listen          443 ssl;
server_name     www.example.com;
ssl_certificate www.example.com.crt;
...

}

server {
listen          443 ssl;
server_name     www.example.org;
ssl_certificate www.example.org.crt;
...

}

...