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
Ú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.