我在 Debian 7 中安装了 apache 和 lighttpd,apache 使用端口 80 而 lighttpd 使用端口 88,现在我为 apache 安装 ssl(443),当我尝试对 lighttpd 执行相同操作时,出现错误,因为 443 已被 apache 使用。
我怎样才能让两个 SSL 都工作?无需禁用 apache SSL。我只能为 lighttpd 使用另一个端口吗?是否有专门用于 https 的端口?我试过 445,但它不起作用。我还尝试创建文件夹 iptables(文件 rules.v4),但没有成功:
SERVER_IP="..."
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 445 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 445 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
这是我在 lighttpd 中添加的内容:
$SERVER["socket"] == "127.0.0.1:445" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/certs/bla.com/server.pem"
}
答案1
当然,您可以(并且必须)让 lighttpd 监听与 apache 监听的端口不同的端口。在任何给定时间,只有一个进程可以监听“IP:PORT”组合
通过使用
$SERVER["socket"] == "127.0.0.1:445"
您的 lighttpd 将只在本地主机上侦听端口 445,因此除非您执行某些 IPTABLES 目标地址转换,否则无法从网络访问。如果您需要 lighttpd 在外部可用,只需将其设置为
$SERVER["socket"] == ":445"
此外,一旦进程启动,请尝试通过运行确认它们正在按预期监听端口
$ sudo netstat -nlp | egrep -i "apache|httpd"