Usando Cloudflare com Salesforce

Eu poderia lhe dar aqui inúmeras razões para utilizar o Cloudflare com Salesforce, tais como HTTPS de graça, Cache, Firewall, DNS instantâneo entre inúmeras outras vantagens do Cloudflare, mas eu não venho aqui hoje para falar do Cloudflare de modo geral, mas sim de como integrar o seu Cloudflare com Salesforce.

Se você utiliza o Cloudflare com outros serviços, sabe o quão simples é utilizar o Cloudflare e o seu HTTPS, basta ativar o Orange e pronto, você já pode usar seu domínio com HTTPS de graça sem nenhum custo para isso, e foi pensando justamente nessa facilidade que eu pensei em utilizar o Cloudflare com Salesforce.

E foi aí que o problema apareceu, depois de mais de 28 mensagens de ticket trocadas com o Cloudflare a conclusão deles foi, “O problema está na AKAMAI”, para quem não sabe a AKAMAI é uma empresa de CDN, e tem uma “Internet” privada, eu poderia ficar horas aqui falando da AKAMAI, mas apesar dela ter um pouco de culpa no problema que eu encontrei, não vou falar muito dela por aqui, o cenário era o seguinte, quando eu deixava o Cloudflare ativo, a AKAMAI recusava a solicitação HTTP retornando erro 400 Bad Request, veja abaixo o request realizado pelo suporte do Cloudflare (por questões de segurança, eu troquei o domínio por xxx).

curl -svo /dev/null http://www.xxx.org
* Rebuilt URL to: http://www.xxx.org/
*   Trying 104.27.162.146…
* Connected to www.xxx.org (104.27.162.146) port 80 (#0)
> GET / HTTP/1.1
> Host: www.xxx.org
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Date: Sun, 24 Sep 2017 14:45:35 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=d35573a262b4291f5338c9b7e762e2ccd1506264335; expires=Mon, 24-Sep-18 14:45:35 GMT; path=/; domain=.xxx.org; HttpOnly
< Mime-Version: 1.0
< Expires: Sun, 24 Sep 2017 14:45:35 GMT
< Server: cloudflare-nginx
< CF-RAY: 3a36874040f26b8b-LHR

Porém, quando eu deixava o Cloudflare desativado, tudo funcionava bem, foi então que uma nova saga começou, pois o Suporte do Cloudflare disse que como quem estava recusando a conexão era a AKAMAI, não havia nada que eles pudessem fazer, e que eu deveria entrar em contato com o suporte do Salesforce.

Abri então um chamado no Salesforce, que por sua vez, recusou o meu chamado, devido a empresa não ter o suporte Premier, e disse que eu deveria abrir um ticket no fórum do Salesforce, espero que vocês nunca dependa do fórum, pois até hoje meu ticket continua lá sem nenhuma resposta, ainda mais se tratando de algo tão específico, seria quase impossível encontrar alguém que tenha passado por isso.

Para minha sorte a empresa estava para assinar o Premier, e assim que isso aconteceu eu abri um novo chamado no Salesforce, no primeiro contato via email, já deu para perceber que não seria uma discussão fácil, pois o suporte não conseguia sequer entender o problema, mesmo eu tentando de todas as formas deixar o problema bem claro, separando um site específico para testes, deixando um domínio funcionando e outro não, ambos apontando para o mesmo site.

Foi então que um Indiano me ligou para tentar entender melhor o meu problema, depois de 10 minutos de conversa eu consegui com muito custo entender que ele queria que eu ativa-se o acesso do suporte na minha ORG, após ativado um novo contato e nenhuma solução, passou-se alguns dias e o suporte passou para outra pessoa me atender, sei lá por qual razão.

O novo suporte fez um GoToMeeting comigo, e pude exibir de forma mais claro o problema, eu de um lado e do outros 2 indianos, e novamente, nenhuma solução.

Ele então disse que ia escalar o chamado para o time de suporte interno deles, mais alguns dias e recebo a resposta de que eu deveria configurar o HEAD do HTTP para o meu domínio principal do Salesforce, mais umas trocas de mensagens com o pessoal do Cloudflare para descobrir como fazer isso, e eis que a resposta era mais simples do que eu pensava, vou colocar algumas imagens abaixo para deixar mais claro o problema e o quão fácil foi, logicamente depois de ter passado por toda essa saga, tudo ficou simples rs.

Configurando o Domínio no Salesforce

Quando vamos configurar um domínio próprio no Salesforce, ele pede para criarmos um TXT ou CNAME no nosso DNS conforme o exemplo abaixo.

Ou seja, devemos criar um CNAME que seria algo como www.xxx.org.YOURORGID.live.siteforce.com.

E foi exatamente isso que eu fiz.

E assim que eu fui testar, me deparei com a mensagem de erro abaixo, não importa quantas vezes eu atualizasse a página, o erro persistia.

E o erro persistia, mesmo habilitando a opção do domínio: Você transmite o domínio por HTTPS usando seu próprio parceiro da CDN ou seu próprio hardware.

Configurando o Cloudflare com Salesforce

Por fim, a solução foi apontar o DNS não para o endereço indicado na tela de registro de domínio do Salesforce, mas sim para o meu domínio force.com.

Você pode encontrar qual é esse domínio de forma fácil no menu Sites, veja a imagem abaixo.

Assim o meu DNS ficou assim, e todos os meus problemas foram resolvidos :)

Se você ainda não conhece a ferramenta Cloudflare, recomendo que você de uma olhada, utilizo ela em TODOS os meus domínio, até mesmo aqui no SouForce.cloud, e agora com essa super dicas, não há desculpas para você não utilizar ela também no Salesforce.

Espero que esse post possa ser útil para você, um forte abraço e até o próximo post :)

 

Fernando Sousa

Senior Salesforce Developer

Bacharel em Sistemas da Informação pela Universidade de Taubaté (UNITAU) e MBA em Projeto de Aplicações para Dispositivos Móveis pelo IGTI – Instituto de Gestão em Tecnologia da Informação. 

Comecei a programar bem cedo, por volta de 10 anos de idade, de maneira auto-didata passei por várias linguagens.

Em 2015 me conectei a plataforma Salesforce pela primeira vez, para fazer una integração entre um Aplicativos Mobile em android e o Salesforce Platform. 

Atualmente com as certificações Salesforce Certified Platform Developer I, Salesforce Certified Platform App BuilderSalesforce Certified Platform Developer IISalesforce Administrator e Sharing and Visibility.

Acompanhe meu Trailhead aqui.

 

CloudflareSalesforceSalesforce AdminSalesforce Advanced