Um guia passo a passo para configurar o certificado SSL/TLS no servidor Tomcat.
Uma das tarefas essenciais para proteger o Tomcat é configurar o certificado SSL, para que o aplicativo da Web seja acessível por HTTPS.
Há muitas maneiras de conseguir isso.
- Você pode encerrar o SSL em um balanceador de carga
- Implemente SSL no nível CDN
- Use servidores web como Apache, Nginx, etc. na frente e implemente SSL lá
No entanto, se você não estiver usando nenhum dos itens acima ou usando isso como front-end ou precisar implantar SSL diretamente no Tomcat, o seguinte o ajudará.
Neste artigo, faremos como abaixo.
- Gerar CSR (solicitação de assinatura de certificado)
- Importar certificado em um arquivo keystore
- Habilitar SSL no Tomcat
- Configurar protocolo TLS
- Altere o Tomcat para escutar na porta 443
- Testar a vulnerabilidade do Tomcat para SSL
Vamos começar…
últimas postagens
Preparando-se para o certificado SSL/TLS
O primeiro passo seria gerar um CSR e obtê-lo assinado pelo autoridade de certificação. Usaremos o utilitário keytool para gerenciar os certificados.
- Entrar no servidor Tomcat
- Vá para o caminho de instalação do tomcat
- Crie uma pasta chamada ssl
- Execute o comando para criar um keystore
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Há duas variáveis nos comandos acima que você pode querer alterar.
Ex:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: bloggerflare.com What is the name of your organizational unit? [Unknown]: Blogging What is the name of your organization? [Unknown]: Geek Flare What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct? [no]: yes Enter key password for <bloggerflare> (RETURN if same as keystore password): [[email protected] ssl]#
Preste atenção na pergunta sobre nome e sobrenome. Isso é um pouco enganador, eu acho. Não é o seu nome, mas o nome de domínio que você deseja proteger.
Depois de fornecer todas as informações, ele criará um arquivo keystore em um diretório de trabalho atual.
Em seguida, seria gerar um novo CSR com o keystore recém-criado com o comando abaixo.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Isso criará um CSR que você precisa enviar para a autoridade de certificação para que seja assinado. Se você estiver brincando, considere usar um provedor de certificado GRATUITO ou escolha um premium.
Eu tenho o certificado assinado e continuarei a importar para o keystore com o comando abaixo.
- O certificado raiz de importação é fornecido pelo provedor
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importar certificado intermediário
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Observação: sem importar root e intermediário, você não poderá importar o certificado de domínio para o keystore. Se você tiver mais de um intermediário, precisará importar todos eles.
- Importar certificado de domínio
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
e, você receberá uma confirmação de que foi instalado.
A resposta do certificado foi instalada no keystore
Ótimo, então o keystore de certificado está pronto agora. Vamos para o próximo passo.
Se você é novo no SSL e está interessado em saber mais, inscreva-se neste curso online – Operações SSL/TLS.
Habilitar SSL no Tomcat
Supondo que você ainda esteja logado no servidor Tomcat, vá para a pasta conf
- Faça um backup do arquivo server.xml
- Vá para a seção
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Não se esqueça de alterar o nome e a senha do arquivo keystore com o seu
- Reinicie o tomcat e você verá que o Tomcat está acessível por HTTPS
Doce!
Porta HTTPS padrão
Por quê?
Bem, se você observar a captura de tela acima, estou acessando o Tomcat acima de 8080 com https que não é padrão e mais alguns motivos.
- Você não quer pedir aos usuários que usem a porta personalizada
- O navegador dará um aviso quando o certificado for emitido no nome de domínio sem a porta
Portanto, a ideia é fazer com que o Tomcat escute na porta 443 para que seja acessível apenas por https:// sem o número da porta.
Para fazer isso, edite server.xml com seu editor favorito
- Vá para
- Alterar porta de 8080 para 443
- 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 com https sem nenhum número de porta
Impressionante, é um sucesso!
Teste de vulnerabilidade SSL/TLS
Por fim, faremos um teste para garantir que não seja vulnerável a ameaças online.
Existem muitas ferramentas online que discuti aqui, e aqui vou usar o SSL Labs.
- Vamos para Laboratórios SSL e insira o URL para iniciar o teste
E é VERDE – uma classificação.
No entanto, é sempre uma boa ideia rolar para baixo no relatório e ver se você encontra alguma vulnerabilidade e corrigi-la.
Então isso foi tudo por hoje.
Espero que isso ajude você a conhecer o procedimento de proteção do Tomcat com certificado SSL/TLS. Se você está interessado em aprender mais, então eu recomendo este curso.