Como configurar o transporte CONFIDENTIAL no servidor Apache HTTPD?

1

Tivemos apenas um VirtualHost em nossa configuração do servidor Apache 2.2:

<VirtualHost _default_:443>

Nossos clientes querem poder colocar no navegador apenas o nome do servidor em HTTP (por exemplo, 10.10.0.1) e o servidor redirecionará automaticamente para HTTPS. Então, nós precisamos adicionar uma adição VirtualHost e configurar o redirecionamento para HTTP usando RewriteEngine :

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

Pergunta: É possível configurar o transporte CONFIDENCIAL no servidor Apache HTTPD? Queremos encontrar uma configuração semelhante à seguinte configuração do web.xml:

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

Adicionado

Nosso requisito: queremos ter certeza de que 100% que até mesmo abrimos a porta 80 para conexão HTTP (que permite conexão não criptografada) nenhum dado pode ser enviado ou recebido da porta 80. Em Java (veja a definição Java abaixo) se O CONFIDENTIAL está configurado e um servidor configurou conexões criptografadas e não criptografadas (HTTP e HTTPS) apenas o HTTPS é usado.

Queremos encontrar o módulo similar de configuração / Apache que permite configuração similar.

De link : Especifique CONFIDENCIAL quando o aplicativo exigir que os dados sejam transmitidos para evitar que outras entidades observem o conteúdo da transmissão.

    
por Michael 10.05.2013 / 11:46

2 respostas

3

Eu não sou um ótimo especialista em Java, mas pelo que entendi, a garantia de transporte CONFIDENCIAL significa que os dados serão criptografados durante o trânsito para que ninguém mais possa lê-lo.

Se sim, então redirecionando todos para SSL (o que basicamente significa criptografia), você já fez isso.

Para expandir a resposta acima:

A configuração do Apache é fundamentalmente diferente da configuração Java, portanto, você não pode sempre transferir um conceito do outro. Infelizmente, esta é uma das vezes que o conceito não traduz bem tudo isso. O Apache não criptografará o tráfego na porta 80, a menos que você o solicite, o que não seria bom para os navegadores. A única coisa que você pode fazer é certificar-se de que o único tráfego que acontece na porta 80 seja uma coisa e apenas uma - o que quer que o usuário tente acessar, deve ser atendido com um redirecionamento para o site SSL. Isso significa que o apache não server nenhuma página, nenhum script, nenhum tráfego em proxy em tudo o que estiver na porta 80. (Exceto que você está permitindo o tráfego não criptografado do host local, que eu suponho ser deliberado.)

Deixe-me acrescentar que eu trabalho em um banco. Redirecionar a porta 80 para a porta 443 é o método que usamos para forçar o tráfego a ser criptografado em alguns de nossos sites. Em nenhum momento isso já permitiu o tráfego não criptografado.

Se você quer ter certeza de duplo-certeza, você pode configurar um diretório de configuração apache totalmente separado que ouve apenas na porta 80, e tem seu DocumentRoot definido como / var / www / notwanted /, que por si só conteria um página web com um redirecionamento sobre ele. Dessa forma, você manteria as duas entidades mais separadas, com arquivos de log separados, etc. Não acho que seja necessário do ponto de vista técnico, mas pode facilitar um pouco a administração dos serviços.

    
por 10.05.2013 / 11:52
1

O mecanismo de regravação é superpoderoso, mas provavelmente é um exagero para suas necessidades. Eu apenas usaria a diretiva Redirect porque é mais simples de entender e mais fácil de ler.

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

Se você realmente quiser usar o RewriteEngine, você precisará de um pouco no final para transformá-lo em um redirecionado 301.

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

De qualquer forma, acho que você não precisa que nenhum dos RewriteConds esteja adicionando algo útil. Chegando na porta 80 já identifica como HTTP padrão.

    
por 10.05.2013 / 13:48