如何在Apache HTTPD服务器中configuration传输CONFIDENTIAL?

我们在Apache 2.2服务器configuration中只有一个VirtualHost

 <VirtualHost _default_:443> 

我们的客户希望能够在浏览器中只使用HTTP(例如10.10.0.1)的服务器名称,服务器将自动redirect到HTTPS。 所以,我们需要添加一个新的VirtualHost并使用RewriteEngineconfigurationredirect到HTTP:

 <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1.*$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> 

问:是否可以在Apache HTTPD服务器中configuration传输CONFIDENTIAL? 我们要find类似于以下web.xmlconfiguration的configuration:

 <transport-guarantee>CONFIDENTIAL</transport-guarantee> 

添加

我们的要求:我们要确保即使我们为HTTP连接打开了80端口(允许非encryption连接),也不能从端口80发送或接收数据。在Java(请参阅下面的Java定义)中,如果configuration了CONFIDENTIAL并且使用configuration了encryption和非encryption连接(HTTP和HTTPS)的服务器,仅使用HTTPS。

我们想find类似的configuration/ Apache模块,允许类似的configuration。

从http://docs.oracle.com/javaee/5/tutorial/doc/bnbxw.html : 当应用程序要求传输数据时指定CONFIDENTIAL,以防止其他实体观察传输的内容。

我不是一个很好的Java专家,但据我所知,传输保证CONFIDENTIAL意味着数据将在传输期间被encryption,以便其他人不能读取它。

如果是这样,那么通过将每个人redirect到SSL(这基本上意味着encryption),你已经做到了。

为了扩大上述答案:

Apacheconfiguration与Javaconfiguration根本不同,所以你不能总是从一个概念转移一个概念。 不幸的是,这是这个概念不能真正翻译好的时代之一。 Apache不会encryption端口80上的stream量,除非您命令它,这不会对浏览器友善。 你可以做的是确保在80端口上发生的唯一的stream量只有一件事,一件事 – 只要用户试图访问,就应该redirect到SSL站点。 这意味着Apache不会在服务器端口80上服务器没有页面,没有脚本,也没有任何代理服务器的stream量。(除非你允许来自localhost的非encryptionstream量,我认为这是非常有意义的)。

让我补充一点,我在一家银行工作。 将端口80redirect到端口443是我们用来强制在一些站点上encryptionstream量的方法。 在任何时候都没有允许非encryptionstream量通过。

如果你想保证双重确认,你可以设置一个完全独立的apacheconfiguration目录,只侦听端口80,并将其DocumentRoot设置为/ var / www / notwanted /,它本身只包含一个网页redirect它。 这样你就可以保持两个实体更加分离,具有单独的日志文件等。从技术angular度来看,我不认为这是必要的,但是这可能会使服务的pipe理变得更容易一些。

重写引擎是超强大的,但可能矫枉过正满足您的需求。 我只需要使用Redirect指令,因为它更易于理解和阅读。

 <VirtualHost *:80> Redirect 301 / https://www.whateverthewebsiteiscalled.com/ </VirtualHost> 

如果你真的想要使用RewriteEngine,最后你需要一点点把它变成一个301redirect。

 <VirtualHost *:80> RewriteEngine On RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </VirtualHost> 

无论如何,我不认为你需要任何RewriteConds添加任何有用的东西。 在端口80上已经标识为标准的HTTP。