Opa, tudo bom?
No último post escrevi sobre como implementar o HSTS em WebApp, aproveitando o gancho sobre assuntos relacionados a segurança em WebAPP, hoje vamos aprender a fazer o redirecionamento de HTTP para HTTPS em um WebApp no Microsoft Azure utilizando o URL Rewrite, esse procedimento também é válido para o IIS (Internet Information Services) a partir da versão 7.x até a mais atual. Para o WebApp o URL Rewrite é nativo na plataforma, é necessário apenas configurar, agrora para o IIS é necessário implementar esse módulo através do WPI (Web Platform Installer).
Nós vamos fazer a configuração diretamente no Web.Config – caso não exista esse arquivo é necessário cria-ló na raiz da aplicação. Utilizaremos o App Service Editor para fazer a edição no Web.Config, porém existem diversas outras formas, seja através de FTP, FTPS, Web Matrix, Deploy Automatizado, Kudu, Visual Studio, enfim.
Acesse o WebApp e procure peça opção “App Service Editor” e em seguida Go.
Copie o código abaixo e coloque na estrutura de <system.WebServer> no web.config – Conforme imagem abaixo.
<rewrite> <rules> <rule name="Redirecionando de HTTP para HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^Off" ignoreCase="True" /> <add input="{REQUEST_METHOD}" pattern="^get$|^head$" /> </conditions> <action type="Redirect" url="//{HTTP_HOST}/{R:1}" /> </rule> </rules> </rewrite>
Após copiar o código dentro da estrutura mencionada acima o redirecionamento estará funcionando de HTTP para HTTPS, além do redirecionamento o path da URL é mantido quando digitado no navegador, exemplo: se o usuário acessar //meusite.com.br/pasta/index.html automaticamente será direcionado para //meusite.com.br/pasta/index.html.
Ponto de atenção, apesar do redirecionamento ser feito para o HTTPS – porta 443, a porta 80 ainda estará aberta e pode ser explorada através de alguma ferramenta, para que a utilização da porta 443 seja forçada é necessário habilitar o HSTS. Uma outra forma de previnir o acesso a porta 80 é implementar um regra de bloqueio a nível de VNet (Virtual Network), porém atualmente só é possível fazer dentro de um ambiente dedicado – ASE, ou ainda através da implementão de um firewall de camada 7 – WAF (Web Application Firewall).
Até a próxima.
Erick Albuquerque – @_ealbuquerque
Comments