Post

Configurando SSL no Tomcat em 5 minutos (https://localhost:8443)

Configurando SSL no Tomcat em 5 minutos (https://localhost:8443)

Este tutorial em como objetivo mostrar como configurar SSL (acesso https://localhost:8443) no Tomcat em 5 minutos.

Para esse tutorial, você irá precisar:

  • Java SDK (usei versão 6 para esse tutorial)
  • Tomcat (usei versão 7 tutorial)

A configuração consiste em 3 passos básicos:

  1. Criar um arquivo keystore usando Java
  2. Configurar o Tomcat para usar o keystore
  3. Testar
  4. (Bônus) Configurar sua web app para usar SSL (acesso através https://localhost:8443/suaApp)

1 - Criando um arquivo keystore usando Java

Abra o terminal no seu computador e digite:

Windows:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
cd %JAVA_HOME%/bin
[/code]

Linux or Mac OS:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
cd $JAVA_HOME/bin
[/code]

O $JAVA_HOME no Mac está localizado em "/System/Library/Frameworks/JavaVM.framework/Versions/{your java version}/Home/"

Você irá mudar o diretório corrente para o diretório de instalação Java para a pasta bin. Dentro da pasta bin existe um arquivo chamado keytool. Esse arquivo é responsável por gerar o arquivo keystore.

Vamos agora gerar o keystore. Digite no terminal:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
keytool -genkey -alias tomcat -keyalg RSA
[/code]

Quando der "Enter" no comando acima, irá aparecer algumas perguntas. Primeiro irá pedir para criar uma senha (escolhi "password" mesmo):

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
loiane:bin loiane$ keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:password
Re-enter new password: password
What is your first and last name?
[Unknown]:Loiane Groner
What is the name of your organizational unit?
[Unknown]:home
What is the name of your organization?
[Unknown]:home
What is the name of your City or Locality?
[Unknown]:Sao Paulo
What is the name of your State or Province?
[Unknown]:SP
What is the two-letter country code for this unit?
[Unknown]:BR
Is CN=Loiane Groner, OU=home, O=home, L=Sao Paulo, ST=SP, C=BR correct?
[no]:yes

Enter key password for
(RETURN if same as keystore password):password
Re-enter new password: password
[/code]

O arquivo .keystore será criado no seu diretório home. No WIndows será algo do tipo C:\Documents and Settings\<username>; no Mac será /Users/<username> e no Linux será /home/<username>.

2 - Configurando o Tomcat para usar o keystore

Abra o diretório de instalação do Tomcat e abra a pasta conf . Dentro dessa pasta irá encontrar um arquivo chamado server.xml. Vamos editar esse arquivo.

Ache a seguinte declaração:

[code lang="xml" firstline="1" toolbar="true" collapse="false" wraplines="false"]
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
[/code]

Descomente o código acima e altere para ficar como abaixo - detalhe para o diretório onde está o keystore e a senha que setou quando criou o keystore:

[code lang="xml" firstline="1" toolbar="true" collapse="false" wraplines="false" highlight="3,4,5"]
Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="/Users/loiane/.keystore" keystorePass="password"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
[/code]

Note que adicionamos as declarações keystoreFile, keystorePass e mudamos o protocol .

3 - Vamos testar!

Inicie o serviço do Tomcar e tente acessar https://localhost:8443. Deverá abrir a homepage local do Tomcat.

Note também que se tentar acessar pela porta padrão 8080 deverá funcionar também:http://localhost:8080

4 - BÔNUS - Configurando sua web app para usar SSL (acesso através https://localhost:8443/suaApp)

Para forçar sua aplicação web a funcionar com SSL, adicione o código abaixo no arquivo web.xml da sua aplicação (antes do final da tag web-app):

[code lang="xml" firstline="1" toolbar="true" collapse="false" wraplines="false"]
<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>
[/code]

A tag url pattern tem o valor /* para que qualquer página ou arquivo da sua aplicação seja seguro (só poderá ser acessado através de https). A tag transport-guarantee foi setado como CONFIDENTIAL para fazer com que a aplicação seja acessada através 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.

Referênciahttp://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html (o tutorial da página do Tomcat é um pouco confuso, por isso decidi escrever esse).

Bons códigos!

This post is licensed under CC BY 4.0 by the author.
This site uses cookies. Please choose whether to accept analytics cookies. Privacy Policy