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.
- Alias - melhor mantê-lo significativo para que no futuro você possa reconhecê-lo rapidamente. Eu prefiro mantê-lo como um nome de domínio.
- 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
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.
- Vá para Laboratórios SSL e digite a URL para iniciar o teste
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 .