首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTPS Apache2信息泄漏

HTTPS Apache2信息泄漏
EN

Security用户
提问于 2011-11-21 22:13:04
回答 3查看 2.2K关注 0票数 3

你好,IT安全!

我有Apache2 vhost和HTTPS监听端口443,即。https:// securesecret.com。

我有另一个具有HTTP侦听端口80的vhost,即。one.com,http:// two.com。

当我访问http:// securesecret.com:443网站时,我收到了这样的消息:

代码语言:javascript
复制
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="https://securesecret.com/"><b>https://securesecret.com/</b></a></blockquote></p>
</body></html>

有关于域的信息。我怎么才能阻止它的出现呢?

apache中的适当配置在哪里?

我已经禁用了ServerToken,ServerSignature等。

EN

回答 3

Security用户

发布于 2011-11-21 22:20:57

您不能真正隐藏域名,因为如果有人连接到您服务器的端口443并开始启动SSL连接,您的服务器将通过发送他的证书来响应.其中包含服务器名称。

实际上,客户端可以将预期的客户端名称作为服务器名称指示的一部分发送,这是一个新的扩展,并不是所有地方都支持它( Windows上的Internet不会发送它,它需要IE8和Vista或更高版本)。从理论上讲,服务器可能在发送证书之前等待显式SNI;但是,SNI和证书此时都将未加密,因此服务器名不能被视为真正的机密。而且,你现在无法从客户那里实际地要求一个SNI (也许在五年后,当当前的WinXP已经基本消失时……)。

此外,服务器名也是DNS发送给请求者的数据的一部分,这些数据是定期发送的,不需要任何加密。服务器名称绝对不是秘密。

票数 11
EN

Security用户

发布于 2011-11-23 18:34:35

您看到的消息来自默认的apache "400错误页“。您可以通过以下方式覆盖400错误页

代码语言:javascript
复制
ErrorDocument 400 /error-docs/400.shtml

在配置文件中的适当位置。用不包括主机名的通用消息替换默认文本。

票数 7
EN

Security用户

发布于 2013-02-27 22:36:05

完整答案:

虽然其他两个答案都很好,但这才是真正解决问题的方法。

为了解决@bstpierre@Thomas Pornin确定的双重归巢问题,您可以使用额外的IP地址和单独的Apache。

您可以在安全IP地址上启动一个单独的Apache实例来承载安全域(包括http和https),其中一个和两个域将仅使用http对其他Apache实例和IP地址进行操作。

当然,您可能很难从提供者、路由和配置服务器获得新的IP地址,但是您需要自己确定成本/效益。

Apache配置文档有很多关于场景和选项的信息。

Alternative:

  • 您可以选择在不同的Apache实例和不同的端口上托管其他内容,从而从其他内容中提供安全内容。即https://securesecret.com:444/.
票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/9127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档