Como implementar SSL no Apache Tomcat?

Um guia passo a passo para configurar o certificado SSL/TLS no servidor Tomcat.

Uma das tarefas essenciais para protegendo o Tomcat é configurar o certificado SSL, para que o aplicativo da web seja acessível por HTTPS.

Existem muitas maneiras de conseguir isso.

  • Você pode encerrar o SSL em um balanceador de carga
  • Implementar 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 como um front-end ou precisar implantar o 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 o protocolo TLS
  • Altere o Tomcat para escutar na porta 443
  • Testar Tomcat para vulnerabilidade SSL

Vamos começar…

Preparando-se para o certificado SSL/TLS

A primeira etapa seria gerar um CSR e fazer com que fosse assinado pelo autoridade certificadora . Nós vamos usar keytool utilitário para gerenciar os certificados.

  • Entrar no servidor Tomcat
  • Vá para o caminho de instalação do tomcat
  • Crie uma pasta chamada ssl
  • Executar comando para criar um armazenamento de chaves
  keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Há duas variáveis ​​nos comandos acima que você pode querer alterar.

  1. Alias ​​- melhor mantê-lo significativo para que no futuro você possa reconhecê-lo rapidamente. Eu prefiro mantê-lo como um nome de domínio.
  2. Nome do arquivo – novamente, é bom manter o nome do domínio.

Ex:

  (root@tecnologico 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):

(root@tecnologico ssl)#

Prestar atenção em a pergunta do 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 de armazenamento de chaves em um diretório de trabalho atual.

O próximo 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ê precisará enviar à autoridade de certificação para que seja assinado. Se você está brincando, então você pode considerar usar um provedor de certificado GRATUITO caso contrário, escolha um premium.

Eu tenho o certificado assinado e vou prosseguir para importar para o armazenamento de chaves 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 raiz 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á importá-los todos.

  • 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, portanto, o keystore do certificado está pronto agora. Vamos para a próxima etapa.

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 <Connector port="8080" protocol="HTTP/1.1" seção e adicione uma linha
  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 que?

Bem, se você observar a captura de tela acima, estou acessando o Tomcat por 8080 com https, o que não é padrão e mais alguns motivos.

  • Você não deseja solicitar que os usuários usem a porta personalizada
  • O navegador emitirá 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 em https:// sem o número da porta.

Para fazer isso, edite server.xml com seu editor favorito

  • Vá para <Connector port="8080"
  • Alterar a 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

tomcat-over-https

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 eu discutido aqui e aqui usarei o SSL Labs.

laboratórios-ssl-tomcat

E os seus VERDE – Uma classificação.

No entanto, é sempre uma boa ideia rolar o relatório para baixo 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ê estiver interessado em aprender mais, eu recomendo isso curso .

Artigos relacionados