Um guia detalhado para configurar o certificado SSL/TLS no seu servidor Tomcat.
Uma etapa crucial para proteger o Tomcat é a implementação de um certificado SSL, que garante que sua aplicação web seja acessível via HTTPS.
Existem várias abordagens para isso.
- Você pode realizar o encerramento SSL em um balanceador de carga.
- Pode-se implementar o SSL na camada da CDN.
- É possível utilizar servidores web como Apache ou Nginx como front-end, configurando o SSL neles.
Contudo, se você não estiver utilizando nenhuma das opções acima, ou se precisar implementar o SSL diretamente no Tomcat, as instruções a seguir serão úteis.
Neste artigo, abordaremos os seguintes passos:
- Geração do CSR (Solicitação de Assinatura de Certificado).
- Importação do certificado em um arquivo keystore.
- Ativação do SSL no Tomcat.
- Configuração do protocolo TLS.
- Alteração da porta de escuta do Tomcat para 443.
- Teste de vulnerabilidade SSL do Tomcat.
Vamos começar…
Preparativos para o Certificado SSL/TLS
O primeiro passo é gerar um CSR e enviá-lo para uma autoridade certificadora para assinatura. Utilizaremos a ferramenta `keytool` para gerenciar os certificados.
- Acesse o servidor onde o Tomcat está instalado.
- Navegue até o diretório de instalação do Tomcat.
- Crie uma nova pasta chamada `ssl`.
- Execute o comando abaixo para criar um keystore:
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Observe que existem duas variáveis que podem ser ajustadas:
- `alias`: É recomendável que seja um nome descritivo para fácil identificação futura. Um nome de domínio é uma boa opção.
- `filename`: Similarmente, usar o nome de domínio como nome do arquivo é uma boa prática.
Exemplo:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Digite a senha do keystore: Redigite a nova senha: Qual o seu primeiro e último nome? [Unknown]: bloggerflare.com Qual o nome de sua unidade organizacional? [Unknown]: Blogging Qual o nome de sua organização? [Unknown]: Geek Flare Qual o nome de sua Cidade ou Localidade? [Unknown]: Qual o nome de seu Estado ou Província? [Unknown]: Qual o código de duas letras do país para esta unidade? [Unknown]: CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown está correto? [no]: yes Digite a senha da chave para <bloggerflare> (RETURN se for a mesma senha do keystore): [[email protected] ssl]#
É crucial prestar atenção à pergunta sobre “nome e sobrenome”. Essa pergunta pode ser confusa, pois ela se refere ao nome de domínio que você deseja proteger, e não ao seu nome pessoal.
Após inserir todas as informações necessárias, um arquivo keystore será criado no diretório de trabalho atual.
O próximo passo é gerar o CSR com o keystore criado, utilizando o seguinte comando:
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Este comando gera o CSR que deve ser enviado à autoridade de certificação para que seja assinado. Se você estiver apenas testando, pode usar um provedor de certificado GRATUITO ou escolher um pago.
Tendo o certificado assinado, o próximo passo é importá-lo no keystore com os seguintes comandos:
- Importar o certificado raiz fornecido pela autoridade de certificação:
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importar o certificado intermediário:
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Observação: É fundamental importar o certificado raiz e intermediário antes de importar o certificado do domínio. Se houver vários certificados intermediários, todos eles devem ser importados.
- Importar o certificado de domínio:
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
Após a execução deste comando, você deverá receber uma confirmação de que a instalação foi bem-sucedida.
A resposta do certificado foi instalada no keystore.
Excelente! Agora que o keystore do certificado está pronto, vamos prosseguir para a próxima etapa.
Se você é novo em SSL e tem interesse em aprender mais, inscreva-se neste curso online: Operações SSL/TLS.
Habilitando SSL no Tomcat
Partindo do princípio que você ainda está logado no servidor Tomcat, navegue até a pasta `conf`.
- Faça um backup do arquivo `server.xml`.
- Localize a seção `
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Lembre-se de substituir o nome e a senha do keystore pelos seus.
- Reinicie o Tomcat para que as alterações tenham efeito. O Tomcat agora estará acessível via HTTPS.
Ótimo!
Porta HTTPS Padrão
Por quê mudar?
Como visto na captura de tela anterior, o Tomcat está acessível através da porta 8080 com HTTPS, o que não é o padrão, e existem outras razões para mudar a porta:
- Evitar que os usuários precisem usar uma porta personalizada na URL.
- O navegador poderá exibir avisos de segurança se o certificado for emitido sem o número da porta.
Portanto, o objetivo é configurar o Tomcat para escutar na porta 443, permitindo o acesso via https:// sem a necessidade de especificar a porta.
Para isso, edite o arquivo `server.xml` com seu editor de texto preferido.
- Localize a linha `
- Altere o valor da porta de 8080 para 443.
- A configuração deve ficar assim:
<Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS" redirectPort="8443" />
- Reinicie o Tomcat e acesse seu aplicativo através de HTTPS sem especificar o número da porta na URL.
Perfeito, o resultado é um sucesso!
Teste de Vulnerabilidade SSL/TLS
Finalmente, vamos realizar um teste para assegurar que seu servidor não seja vulnerável a ameaças online.
Existem várias ferramentas online disponíveis para esse propósito, e neste caso utilizaremos o SSL Labs, que foi mencionado anteriormente.
- Acesse o site do SSL Labs e insira a URL do seu site para iniciar o teste.
E o resultado é VERDE – uma classificação A.
É sempre recomendável revisar o relatório completo, buscando possíveis vulnerabilidades e corrigindo-as.
Isso é tudo por hoje.
Espero que este guia tenha sido útil para você entender o procedimento de proteção do seu Tomcat com um certificado SSL/TLS. Se você está interessado em aprender mais, recomendo este curso.