Verifica HTTPs e domínio

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,