Configurando SSL no Tomcat 8 (https://localhost:8443)

Este tutorial visa mostrar como utilizar SSL no tomcat, configurando de maneira simples o suporte a https

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Web - TUTORIAL

Última atualização em: | 25842 Visualizações

Para fazer a configuração vamos separar em 3 partes distintas:

Criando o keystore usando java

O primeiro passo é criar um certificado.

Caso tenha um certificado de uma unidade certificadora, pode pular esta etapa.

Para isso utilizaremos neste exemplo o utilitário keystore do java, siga os passos:

Abra o terminal e digite:

java -version

Lembre-se que precisa ter o JAVA_HOME devidamente configurado, caso tenha dúvidas de como configurar acesse: Como configurar JAVA_HOME para Java no Ubuntu

Se o resultado foi a versão do java, ótimo, isso significa que o caminho do java esta disponíveis nas váriáveis de ambiente

Agora crie o certificado usando o comando:

keytool -genkey -alias tomcat -keyalg RSA

Após será questionado uma série de informações, em portugues ou ingles dependendo de suas configurações. Será algo parecido com isso:

Informe a senha da área de armazenamento de chaves: mypass123
Informe novamente a nova senha: mypass123
Qual é o seu nome e o seu sobrenome?
  [Unknown]:  Wolmir Garbin
Qual é o nome da sua unidade organizacional?
  [Unknown]:  Garbo
Qual é o nome da sua empresa?
  [Unknown]:  Garbo
Qual é o nome da sua Cidade ou Localidade?
  [Unknown]:  Pato Branco
Qual é o nome do seu Estado ou Município?
  [Unknown]:  PR
Quais são as duas letras do código do país desta unidade?
  [Unknown]:  BR
CN=Wolmir Garbin, OU=Garbo, O=Garbo, L=Pato Branco, ST=PR, C=BR Está correto?
  [não]:  sim

Pronto, o arquivo .keystore será criado no seu diretório de usuário.

No WIndows será algo do tipo C:\Usuários\<username>; No Mac será /Users/<username> e no Linux será /home/<username>

Configurando server.xml no tomcat

Com o certificado gerado, agora já podemos configurar o tomcat. Para isso acesse o diretório de instalação do tomcat e edite o arquivo server.xml (<tomcat-dir>/conf/server.xml).

Localize dentro do arquivo uma instrução similar a esta:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Logo abaixo da instrução, adicione:

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" 
	   maxThreads="200"
           scheme="https" 
	   secure="true" 
           SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" 
	   keystorePass="mypass123"
           clientAuth="false" 
	   sslProtocol="TLS" />

Lembre que a senha mypass123 foi a que utilizei, caso tenha utilizado outra senha adicione a mesma senha nesta configuração.

Para testar inicie o tomcat sudo <tomcat-dir>/bin/catelina.sh start.

Agora basta digitar em seu navegador: https://localhost:8443 e pronto, o tomcat estará suportando as requisições em https.

Configurar sua aplicação para usar SSL

Se quiser você pode forçar sua aplicação web a funcionar com SSL, para isso basta adicionar o código abaixo no arquivo web.xml da sua aplicação dentro das tags <web-app>:

<!-- inicio - forçar a utilização de SSL -->
<security-constraint>
  <web-resource-collection>
    <web-resource-name>securedapp</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
<!-- fim - forçar a utilização de SSL -->

Se desejar desativar o acesso SSL da aplicação, não precisa deletar o código do arquivo web.xml, basta trocar o CONFIDENTIAL para NONE.

Pronto, qualquer dúvida deixe nos comentários!

Mais informações em: http://localhost:8080/docs/ssl-howto.html


Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!