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