Skip to content

Instantly share code, notes, and snippets.

@alexandreaquiles
Created November 14, 2014 23:15
Show Gist options
  • Save alexandreaquiles/d0982566c526bdd69442 to your computer and use it in GitHub Desktop.
Save alexandreaquiles/d0982566c526bdd69442 to your computer and use it in GitHub Desktop.
Configurando SSL no Tomcat

Primeiramente, vamos utilizar a ferramenta keytool, que vem com a JDK, para gerar um arquivo que vai conter nossas chaves criptográficas públicas e privadas com o algoritmo RSA.

$ keytool -genkey -alias tomcat -keyalg RSA

Vão ser solicitados uma senha e alguns dados sobre sua a empresa. Em first and last name devemos colocar o domínio da nossa aplicação. No nosso caso, vai ser localhost.

Enter keystore password:  tomcat
Re-enter new password: tomcat
What is your first and last name?
  [Unknown]:  localhost
What is the name of your organizational unit?
  [Unknown]:  caelum
What is the name of your organization?
  [Unknown]:  caelum
What is the name of your City or Locality?
  [Unknown]:  Brasilia
What is the name of your State or Province?
  [Unknown]:  DF
What is the two-letter country code for this unit?
  [Unknown]:  BR
Is CN=locahost, OU=caelum, O=caelum, L=Brasilia, ST=DF, C=BR correct?
  [no]:  yes
 
Enter key password for
    (RETURN if same as keystore password):  tomcat
Re-enter new password: tomcat

Deve ter sido criado um arquivo .keystore na sua pasta pessoal (/home/webxxxx). Certifique-se disso, executando o comando:

$ ls -a ~/.key*

Agora, podemos configurar as nossas chaves no Tomcat. Como estamos controlando o Tomcat pelo Eclipse, abra o projeto Servers e em Tomcat v7.0 Server at localhost-config, edite o arquivo server.xml.

Descomente as linhas abaixo, inserindo as propriedades keystoreFile e keystorePass:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="/home/webxxxx/.keystore" keystorePass="tomcat" />

Pronto! Reinicie o Tomcat e veja se a aplicação está funcionando com https na porta 8443 através do endereço: https://localhost:8443/fj21-tarefas/.

Porém, a aplicação ainda está acessível sem https pelo endereço http://localhost:8080/fj21-tarefas/.

Podemos sempre redirecionar para o endereço seguro inserindo no web.xml do projeto as seguintes configurações:

<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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment