单个IP上的apache http和https

我们使用基于名称的虚拟主机在我们的环境中运行apache 2.4 web服务器。 有一个单一的IP(比如X)分配给这个服务器,这个NAT是单个私有的(比如Y)。

目前,我的端口80和443监听如下:0.0.0.0:80和0 0.0.0.0:443。
有很多网站运行在80端口[http:// domain1.com,domain2.com等]
而且只有运行在443端口的单个网站[https] [说abc.com]

但是当错误地inputhttps://domain.com时,它会显示SSL警告并显示abc.com的内容。

由于SSL不支持基于名称的虚拟主机,这似乎很正常。 但是,如何在用户错误地在我的环境中托pipe的非HTTP网站上inputhttps时,如何限制用户不查看abc.com的页面?

使端口443上的第一个VirtualHost服务静态index.html与解释,或不提供任何服务(然后它返回标准的404错误,这也是确定的)。

VirtualHost首先在httpd.conf中以文本forms出现,或者以conf.d目录中的文件的字母顺序出现。

不支持SNI的旧浏览器将在这里结束。

指定除abc.com以外的服务器名称的浏览器也将在此处结束。 用户仍将看到证书警告,因为您将提供的证书与主机名称不匹配。 所以这是一个丑陋的解决方法。

第二个端口443上的VirtualHost应该服务于abc.com。

支持SNI(所有现代浏览器)的浏览器将在这里结束。