Instalando um certificado SSL em uma instance da Amazon EC2 com Tomcat e Windows Server

Um certficiado SSL é um ‘contrato’ entre o navegador e o servidor para garantir que as informações trocadas entre ambos estejam criptografadas e seguras. O certificado SSL em um site é facilmente identificado com um cadeado no começo da barra de endereço do navegador.

Para a instalação deste certificado em um site, basta entrar em contato com seu servidor de hospedagem e requisitar. Até mesmo desenvolvedores menos experientes podem realizar a tarefa, que na maioria das vezes é simples de ser executada.

Porém, a instalação de um certificado para uma aplicação hospedada na Amazon não é um processo simples como em um site. Principalmente pelo fato de não ser possível associar diretamente um SSL a um IP(as instances da amazon são acessadas via IP, e embora tenham um DNS público, eles possuem a extensão ‘amazonaws.com’ e não é possível associar um SSL a esse domínio da Amazon).

Este artigo não tem como objetivo descrever a síntaxe exata de cada passo. Este tipo de informação é facilmente encontrada na internet. A ideia aqui é explicar o processo como um todo, já que o material encontrado na internet que explica todo o processo praticamente não é encontrado – ou encontrado bem fragmentado.

Para a disponibilização do sistema com um domínio formatado e com https deve-se atentar aos seguintes itens:

1. A porta 443 do Security Group da Instance deve estar aberta e disponível para conexões https.
2. Deve-se comprar um domínio e um SSL para esse domínio. Veja que ‘www.dominio.com’ é diferente de ‘dominio.com’.
3. É necessário instalar um certificado ‘self-trusted’ no Tomcat. Este certificado, posteriormente, deve ser associado aos certificados do site comprados. Existe vasto material na internet explicando este processo.
4. Perceba, na instalação dos certificados, que o seu certificado tem um ‘caminho’, composto por outro(s) certificado(s). Geralmente o caminho é ‘root_certificate’>’intermediary_certificate’>’your_certificate’. Se atente ao nome e a ordem de instalação.
5. No server.xml do Tomcat deve-se abrir um conector de porta 443 e apontar o caminho e a senha do keystore do Tomcat previamente criado no passo 3.
6. Se tudo correr bem, você poderá ver a sua aplicação rodando, porém o navegador ainda vai apontar como não seguro.
7. Para resolver, crie uma Hosted Zone no Amazon Route 53. Este serviço permite a criação de ‘rotas’ entre os serviços da Amazon e recursos externos. Vamos criar uma ponte entre a nossa instância EC2 e o nosso domínio.
8. Para isso, crie um record na sua Hosted Zone e coloque o nome dele exatamente como é o nome do seu domínio(incluindo www). Ele será do tipo SOA e contém um DNS master e 3 slaves. Eles devem ser copiados nos campos de DNS master e slave do seu serviço de registro de domínio. A propagação leva em média 1 dia.
9. Sua hosted zone contém um registro do tipo A. Ele deve ter como value o IP da sua instância (essa é a ligação entre a instância e o DNS).
10. Se tudo correr bem, seu https://domínio/suaAplicacao deve estar abrindo como um site seguro.

Para resumir: compre um domínio e um certificado SSL, associe esse SSL no keystore do tomcat, libere a porta 443 tanto no Tomcat quanto do Security Group, crie uma Hosted Zone na Amazon, copie o DNS dessa Hosted Zone e insira no seu serviço de registro de domínio e por fim coloque o IP da sua instância na Hosted Zone.

A AGT possui extenso know-how em aplicações hospedadas na nuvem. Utilizamos o servidor Amazon pela sua confiabilidade, segurança e disponibilidade. Oferecemos soluções web completas, desde o desenvolvimento e o planejamento do sistema até a hospedagem. Entre em contato com a AGT!