Tomcat

Tenho um aplicação rodando local usando tomcat 5.5 com https. Coloquei a aplicação no servidor, que tem o Apache 2 integrado com o TomCat. Realizei as configurações no TomCat do servidor para funcionar o https mas não está funcionando. Alguém sabe quais configurações necessárias para integrar o Apache com TomCat usando HTTPS?

TOMCAT: Habilitando HTTPS (SSL)

ulirod
July 20, 2006
1 ? O Tomcat ou o Serviço devem estar parados!

2 - Gerar o Certificado:
Para gerar um certificado se utiliza o comando abaixo (esta na pasta bin da jdk)

keytool -genkey -alias NomeDoCertificado -keyalg DSA -keypass SenhaDaChave -storepass SenhaDoStore -keystore C:/certificado.jks -dname “cn=empresa, ou=area, o=grupoDeTrabalho, l=Cidade, S=Estado, c=Pais” -validity 365

3 - Só configurar o arquivo server.xml que fica no diretório conf do tomcat:
\conf\server.xml

Procure por essas linhas:

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified during installation --> <Connector port=“80” maxThreads=“150” minSpareThreads=“25” maxSpareThreads=“75” enableLookups=“false” redirectPort=“8443” acceptCount=“100” debug=“0” connectionTimeout=“20000” disableUploadTimeout=“true” /> <!-- Note : To disable connection timeouts, set connectionTimeout value to 0 -->

Elas definem uma conexão não SSL, repare que o redirectPort está definido para a porta 8443, mude para 443.

Procure novamente dentro do arquivo as linhas:

<!-- <Connector port=“8443” maxThreads=“150” minSpareThreads=“25” maxSpareThreads=“75” enableLookups=“false” disableUploadTimeout=“true” acceptCount=“100” debug=“0” scheme=“https” secure=“true” clientAuth=“false” sslProtocol=“TLS” /> -->

Descomente-as e troque a porta para 443 e adicione os parâmetros:

keystoreFile=“c:\certificado.jks”
keystorePass=“SenhaDoStore”

vai ficar assim:

<Connector port="443"maxThreads=“150” minSpareThreads=“25” maxSpareThreads=“75” enableLookups=“false” disableUploadTimeout=“true” acceptCount=“100” debug=“0” keystoreFile=“c:\certificado.jks” keystorePass=“SenhaDoStore” scheme=“https” secure=“true” clientAuth=“false” sslProtocol=“TLS” />

Pronto agora é só iniciar o TomCat e acessar pelo Browser o endereço:

https://localhost

Irá mostrar uma mensagem que o certificado não é válido porque ele não é reconhecido pelas Certificadoras (Verisign,GlobalSign, etc), mas não impede o trabalho.

Para um módulo do seu Site ser acessado via HTTPS adicione no web.xml da sua aplicação o trecho abaixo:

<security-constraint>
<web-resource-collection>
<web-resource-name>SENHA</web-resource-name>
<description>Acesso só via HTTPS</description>
<url-pattern>/login/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<user-data-constraint>
<description>Usar SSL</description>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

Fontes:
GUJ:
http://www.guj.com.br/posts/list/29710.java

How-to do SSL (TOMCAT):
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/ssl-howto.html

JavaFree:
http://www.javafree.org/javabb/viewtopic.jbb?p=74593#74593

Essa parte eu ja configurei!! No servidor o Apache é o Servidor principal, como fazeraintergração usando o HTTPS.

OBS.: A integração ja funciona sem o HTTPS. Essas configurações ja fiz no servidor mas não deu certo