为什么我的服务器没有在端口 443 上响应?

为什么我的服务器没有在端口 443 上响应?

我在 AWS (Ubuntu 13.04) 上有一个 EC2 服务器。它当前在端口 80 上运行一个网站,我正在尝试设置 SSL。

现在它似乎对端口 443 根本没有响应。

telnet:无法连接到远程主机:连接被拒绝

在 AWS 安全组中,我将其设置为允许端口 443 上的连接。我也相信我修改了 iptables,但也许我做错了。

当我跑步时:

sudo iptables -L -vn

输出如下:

链输入(策略接受2706个数据包,1652K字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         
    0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443

链转发(策略接受 0 个数据包,0 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         

链输出(策略接受 1331 个数据包,1583K 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         
 5153 434K 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
    0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

以下是netstat -tlnp

(并非所有进程都能被识别,非自有进程信息
 将不会显示,您必须以 root 身份才能看到所有内容。
活动互联网连接(仅限服务器)
Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称
tcp 0 0 127.0.0.1:58890 0.0.0.0:* 监听 10571/myapp
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 侦听 5748/           
tcp 0 0 127.0.0.1:49270 0.0.0.0:* 监听 10105/myapp
tcp 0 0 0.0.0.0:22 0.0.0.0:* 侦听 -               
tcp 0 0 127.0.0.1:5432 0.0.0.0:* 侦听 -               
tcp6 0 0 :::22 :::* 侦听 -     

这是我的 /etc/iptables.rules 文件:

# 由 iptables-save v1.4.12 于 2013 年 10 月 6 日星期日 17:03:14 生成
*自然
:预路由接受 [0:0]
:输入接受 [0:0]
:输出接受 [2:222]
:后路由接受 [2:222]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
犯罪
# 于 2013 年 10 月 6 日星期日 17:03:14 完成

编辑我更新了 iptables 配置:

sudo iptables -L -vn
链输入(策略接受105个数据包,10377字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         
   21 1260 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443flags: 0x17/0x02
    8 480 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

链转发(策略接受 0 个数据包,0 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         

链输出(策略接受 91 个数据包,21519 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         
14313 1307K 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
    5 200 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443

答案1

您在 iptables 配置中混淆了源端口和目标端口。在输入链中,您必须允许目标端口为 443 的数据包。在输出链中,您必须允许来自端口 443 的流量。

相关内容