Apache - Encaminhar HTTP: // solicitação de SITE para HTTPS: // SITE

1

Eu queria saber se existe alguma maneira com o DNS do Windows Server 2008 para encaminhar solicitações de um domínio usando HTTP para o mesmo domínio em HTTPS? Francamente, tenho a sensação de que, na verdade, é o servidor web, mas pensei em começar com o sistema de DNS, o que não ajuda muito o googling. Basicamente eu quero permitir que um usuário acessando um subdomínio seja automaticamente encaminhado para a versão HTTPS, já que eu desabilitei a escuta na porta 80 para aquele site (o sistema de webmail estava em conflito com o meu servidor web)

Por favor, pergunte se alguma coisa não está clara ou eu expliquei mal.

Editar: Pensar nisso não tem nada a ver com DNS (A pista está no nome;)) Alguém sabe sobre como configurar isso com o Apache (suponho que é aí que está a resposta)

    
por Draineh 21.04.2011 / 16:37

2 respostas

3

Não, o DNS apenas mapeia a parte do nome do host de um URL para um endereço IP.

URL, como

http://www.example.com/path/whatever
https://www.example.com/path/whatever

Ambos contêm o mesmo nome de host www.example.com, que é a única parte que é referenciada ao DNS. Seu navegador examina a parte do protocolo (http ou https) para decidir qual protocolo deve usar para contatar esse host.

Para forçar uma conexão HTTP a ser alterada para uma conexão HTTPS, você deve configurar o servidor web para escutar na porta especificada na URL e responder com uma resposta de redirecionamento adequada se o protocolo for HTTP. Há muitas maneiras de fazer isso - verifique o manual do Apache ou pergunte.

Se não houver nada (ou pior, um servidor de webmail dedicado?) escutando na porta especificada na URL, você precisa fazer com que todos usem um novo URL ou repensem sua solução para o conflito com o webmail.

Melhor mover o webmail para outra porta e fazer com que o Apache redirecione URLs relevantes para o serviço de webmail.

    
por 21.04.2011 / 16:42
2

Basically I want to allow a user accessing a subdomain to be automatically forwarded to the HTTPS version as I have disabled listening on port 80 for that site (the webmail system was conflicting with my web server)

Como parece que você tem um daemon de serviço diferente na porta 80, não será possível fazer isso com a sua configuração atual. Qualquer solicitação http irá diretamente para a porta 80 em sua máquina (que você desativou). Você precisará reativar o Apache para escutar na porta 80 e reescrever as URLs à medida que o usuário envia uma solicitação para o seu host http:// .

A maneira padrão do Apache de fazer isso seria com mod_rewrite e fazer algo assim:

<VirtualHost *:80>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

Veja o link para obter mais documentação.

    
por 21.04.2011 / 20:46