Сервер Niginx: SSL_ERROR_RX_RECORD_TOO_LONG - PullRequest
0 голосов
/ 06 октября 2019

Недавно я размещал приложение реагирования на EC2 с nginx. Приложение реакции работает на порту 3000.

Поэтому я перенаправил запросы HTTP и HTTPS на порт 3000, используя -

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3000

sudo service netfilter-persistent save

Я добавил имя домена и сведения о сертификате в файл conf в/ и т.д. / Nginx / сайты-доступны. Файл conf -

server {
   listen 443 ssl;
   root /var/www/myapp/client/build;
   server_name example.com;
   index index.html index.htm;
   ssl_certificate /etc/ssl/bundle.crt;
   ssl_certificate_key /etc/ssl/mykey.key;

   location / {
   }
}

server {
    listen 80;

    server_name example.com ip_address;
    return 301 https://example.com$request_uri;
}

Когда я запускаю это -

sudo lsof -i -P -n

Я получаю это -

COMMAND    PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-n  630 systemd-network   19u  IPv4  25765      0t0  UDP 172.11.25.109:68 
systemd-r  641 systemd-resolve   12u  IPv4  15768      0t0  UDP 127.0.0.53:53 
systemd-r  641 systemd-resolve   13u  IPv4  15769      0t0  TCP 127.0.0.53:53 (LISTEN)
sshd       973            root    3u  IPv4  19516      0t0  TCP *:22 (LISTEN)
sshd       973            root    4u  IPv6  19533      0t0  TCP *:22 (LISTEN)
sshd      1388            root    3u  IPv4  21610      0t0  TCP 172.11.25.109:22->95.91.208.58:60491 (ESTABLISHED)
sshd      1523          ubuntu    3u  IPv4  21610      0t0  TCP 172.11.25.109:22->95.91.208.58:60491 (ESTABLISHED)
node      1743            root   24u  IPv4  23414      0t0  TCP *:3000 (LISTEN)
nginx     1924            root    8u  IPv4  25687      0t0  TCP *:443 (LISTEN)
nginx     1924            root    9u  IPv4  25688      0t0  TCP *:80 (LISTEN)
nginx     1928        www-data    8u  IPv4  25687      0t0  TCP *:443 (LISTEN)
nginx     1928        www-data    9u  IPv4  25688      0t0  TCP *:80 (LISTEN)

Я могу видеть веб-сайт на http://example.com но я получаю ошибку, когда пытаюсь перейти на https://example.com. Я получаю ошибку -

SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG 

Как правильно разместить веб-приложениепо HTTPS?

1 Ответ

0 голосов
/ 06 октября 2019

Поэтому я перенаправил запросы HTTP и HTTPS на порт 3000, используя ...

Это перенаправляет IP-пакеты на порт 80 и 443 непосредственно на порт 3000, что означает, что nginx полностьюбыть обойденным. Таким образом, любая конфигурация для nginx не имеет значения.

При доступе к https://example.com будет предприниматься попытка квитирования TLS на порте 443, который по существу является портом 3000 (из-за перенаправления IP-пакетов), но порт 3000 не понимает TLS. Сервер на порту 3000 вместо этого ожидает простой HTTP и возвращает ошибку HTTP, так как запуск рукопожатия TLS, очевидно, не является действительным запросом HTTP. Это сообщение об ошибке будет интерпретировано как ответ TLS, вызывающий это странное сообщение об ошибке.

Вместо правил iptables вам нужно настроить nginx в качестве обратного прокси-сервера, см., Например, здесь как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...