Configurando o protocolo SSL no Tomcat

Ps: O Tomcat usado foi a versao 7.0.23

1) Criando um arquivo keystore

$ keytool -genkey -alias tomcat -keyalg RSA


  • Responda às perguntas conforme solicitado.
  • O arquivo .keystore será criado no $HOME do usuário.

2) Configurando o Tomcat para usar o keystore
  • Pare o tomcat;
  • Edite o arquivo server.xml;
  • Encontre o connector do protocolo https;
  • Descomente o codigo e altere conforme abaixo:


<Connector SSLEnabled="true" acceptCount="100" 
           clientAuth="false" disableUploadTimeout="true" 
           enableLookups="false" maxThreads="25" port="8443" 
           keystoreFile="/home/tomcat/.keystore" keystorePass="s7g@sigma" 
           scheme="https" secure="true" sslProtocol="TLS" compression="1" />


  • E nao se esqueça de adicionar o compression="1" (compressão gzip);
  • Comente o codigo referente ao acesso à porta HTTP:8080;
3) Testando o acesso à porta 8443 "HTTPS"
  • Inicie o tomcat, e acesse https://localhost:8443/
4) Configurando sua web app para usar SSL

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



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


A tag url pattern tem o valor /* para que qualquer página ou arquivo da 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.

Para desativar o acesso SSL da aplicação, basta alterar o valor de CONFIDENTIAL para NONE.

Comentários