Apache: redireciona para https antes de AUTH para status do servidor

1

Eu quero forçar https e autenticação básica para saída de status do servidor (mod_status). Se eu ativar a autenticação e o usuário solicitar http://site/server-status , o apache primeiro solicitará o recebimento, redirecionará para o httpS e solicitará a aprovação novamente.

Esta questão é semelhante a Apache - Redirecionar para https antes de AUTH e force https com o apache antes de .htpasswd mas não consigo trabalhar porque não estamos falando de pasta genérica, mas de estrutura de localização.

Minha configuração (logo) é a seguinte:

<Location /server-status>
    SSLRequireSSL
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteBase /server-status
        RewriteCond %{HTTPS} off
                RewriteCond %{SERVER_PORT} 80
                RewriteRule ^ - [E=nossl]
                RewriteRule (.*) https://site/server-status} [R=301,L]
    </IfModule>

    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost ip6-localhost
    Allow from 1.2.3.0/24

    Allow from env=nossl

    AuthUserFile /etc/httpd/status-htpasswd
    AuthName "Password protected"
    AuthType Basic
    Require valid-user

    Satisfy any
</Location>

Suponho que Allow from env=nossl deve permitir a todos com RewriteCond %{HTTPS} off e porta do servidor 80, em seguida, forçá-lo a redirecionar, mas não funciona.

Por favor note, eu não quero forçar SSL todo o site, mas / status do servidor apenas. Se for importante, o servidor tem vários sites.

O que estou fazendo de errado? Obrigado.

    
por Putnik 28.11.2012 / 16:53

2 respostas

1

Existe uma maneira de separar HTTP e HTTPS em dois hosts virtuais? Você pode colocar o Auth somente no HTTPS e ter o redirecionamento HTTP para HTTPS. A configuração completa seria algo como isto.

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect / https://example.com/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
.
.
.
</VirtualHost>
</IfModule>
    
por 02.01.2016 / 20:28
0

Eu não tive muita sorte em receber RewriteCond %{HTTPS} off trabalhando - em vez disso, o que funcionou para mim foi

RewriteCond    %{SERVER_PORT}   !443

Outra sugestão ( desta questão ) seria mover o Auth linhas em uma seção <VirtualHost *:443> .

    
por 28.11.2012 / 17:22