我读过有关“端口绑定”和“虚拟主机”的 Apache 文档,但还是找不到解决方案。我还搜索了服务器故障寻找答案,但所有答案都指向同一个解决方案:“将 LISTEN [端口号] 添加到 httpd.conf 文件并重新启动 Apache”。这不起作用。
我正在尝试做的事情:让 Apache 监听端口 510 和 443 上的安全连接。
怎么了:仅端口 443 有效,端口 510 上的安全和不安全请求均失败。
我如何尝试做到这一点(在我的 httpd.conf 文件中):
Listen 80
Listen 443
Listen 510
NameVirtualHost *:510
<VirtualHost *:510>
ServerName samplesite.com
ServerAlias *.samplesite.com
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "conf/ssl/_.samplesite.com/_.samplesite.com.crt"
SSLCertificateKeyFile "conf/ssl/_.samplesite.com/_.samplesite.com.key"
SSLCertificateChainFile "conf/ssl/_.samplesite.com/gd_bundle.crt"
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
AllowEncodedSlashes On
</VirtualHost>
<VirtualHost *:443>
ServerName samplesite.com
ServerAlias *.samplesite.com
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "conf/ssl/_.samplesite.com/_.samplesite.com.crt"
SSLCertificateKeyFile "conf/ssl/_.samplesite.com/_.samplesite.com.key"
SSLCertificateChainFile "conf/ssl/_.samplesite.com/gd_bundle.crt"
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
AllowEncodedSlashes On
</VirtualHost>
任何帮助将不胜感激。
答案1
现在我能想到的只有两个原因。
您的计算机上启用了 Selinux,这会干扰您的设置。要测试这一点,请检查此命令的输出
# getsebool
如果说的是这样的:
getsebool: SELinux is enabled
这仅仅意味着 Selinux 已启用。要暂时禁用它,请使用以下命令:
# setenforce 0
这将暂时禁用您的 Selinux。之后尝试您的 apache 新端口。
您的机器上启用了防火墙。不确定您使用的是哪个发行版,但请尝试检查机器上的防火墙,如果已启用,请允许访问 510 端口。
另外,检查命令的输出
netstat -npl | grep 510
,看看重新启动 apache 后是否真的打开了端口。
答案2
我看到您已为附加 SSL 端口 510 启用了 NameBased 虚拟主机。
名称虚拟主机 *:510
SSL 是一个不同的实体,它不理解 Apache 基于名称的虚拟主机所基于的 HTTP 主机标头。
最好的选择是删除“NameVirtualHost *:510”