gpt4 book ai didi

http - Nginx 服务器 : SSL_ERROR_RX_RECORD_TOO_LONG

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:18 27 4
gpt4 key购买 nike

我最近使用 nginx 在 EC2 上托管了一个 React 应用程序。 React 应用程序在端口 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

我已经在/etc/nginx/sites-available 的 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 上正确托管网络应用程序?

最佳答案

So I redirected HTTP & HTTPS requests to port 3000 using ...

这是将80端口的IP包,443端口直接到3000端口,也就是说nginx会被完全绕过。因此,nginx 的任何配置都是无关紧要的。

访问 https://example.com 将尝试在端口 443 上进行 TLS 握手,该端口实际上是端口 3000(因为 IP 数据包的重定向) - 但端口 3000 不理解传输安全协议(protocol)。端口 3000 上的服务器将改为期望纯 HTTP 并返回 HTTP 错误,因为 TLS 握手的开始显然不是有效的 HTTP 请求。然后,此错误消息将被解释为导致此奇怪错误消息的 TLS 响应。

除了 iptables 规则之外,您需要做的是将 nginx 配置为反向代理,参见示例 here这个怎么做。

关于http - Nginx 服务器 : SSL_ERROR_RX_RECORD_TOO_LONG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com