image

Olá pessoal, hoje vamos tratar de um ponto importante nos dias de hoje. O Google já começou a tratar os domínios válidos apenas como HTTPS ou SSL habilitado, isso mesmo. Os sites com apenas HTTP não tem mais prioridade em um dos maiores buscadores do mundo. Os browsers estão também falando que o HTTP apenas não é seguro, alguns browsers mostram ao usuário que o site está inseguro, mesmo que tenha apenas um arquivo HTML escrito "olá mundo".

Existem vários sites que geram certificado SSL (https) para você hoje em dia gratuitamente. Basta fazer algumas configurações e pronto, tudo está funcionando.

Outro ponto importante hoje em dia é o seguinte: vamos imaginar que você tem dois domínios, um .com.br e outro .com. Mas o certificado que tem é apenas para o .com e não para o .com.br. Como vamos fazer para publicar e fazer com que o usuário não pense que o .com.br está inseguro?

A solução encontrada foi o seguinte:

  • Identificar qual o domínio que o usuário está acessando;
  • Verificar se está com HTTPs;
  • Redirecionar para o domínio .com que tem o certificado SSL.

É importante também verificar se o teste está sendo feito usando com localhost antes de qualquer coisa. O software só vai funcionar se estiver fora do localhost.

A primeira linha verifica se o HTTP_HOST contem o localhost. A segunda linha verifica se o endereço acessado possui algum .com.br, se for positivo, ele redireciona para o local correto, como o endereço .com. A segunda condição "else if" verifica se o ambiente está seguro com o HTTPS usando o IsSecureConnection. Note que a última linha utiliza o redirect para o "https". Veja o código 1.

	private void verificarHTTPS()
    {
        //verifica se está no http, se sim, passa para https.
        if (!Request.ServerVariables["HTTP_HOST"].ToString().Contains("localhost"))
        {
            if (Request.ServerVariables["HTTP_HOST"].ToString().Contains(".com.br"))
                Response.Redirect(System.Configuration.ConfigurationManager.AppSettings["site"].ToString());

            else if (HttpContext.Current.Request.IsSecureConnection.Equals(false))
                Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"].ToString() + HttpContext.Current.Request.RawUrl);
        }
    }

Código 1 - Verifica o HTTPS e ambiente seguro.

Espero que tenha gostado e qualquer dúvida,