Configurando o TOMCAT para acessar um site via HTTPS (SSL) sem utilizar o APACHE como Servidor WEB
Para gerar um certificado se utiliza o comando abaixo(se você está utilizando JAVA 1.3 no site da SUN procure por JSSE)
keytool -genkey -alias nomeDoCertificado -keyalg DSA -keypass SenhaDaChave -storepass SenhaDoStore -keystore C:/java/certificado.jks -dname “cn=empresa, ou=area, o=grupoDeTrabalho, l=Cidade, S=Estado, c=Pais” -validity 365
No arquivo do SERVER.XML do TOMCAT descomente o trecho abaixo:
<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” />
E adicione os parâmetros:
keystoreFile="c:\java\certificado.jks"
keystorePass=“SenhaDoStore”
Ficando assim:
<Connector port="8443"
maxThreads=“150” minSpareThreads=“25” maxSpareThreads="75"
enableLookups=“false” disableUploadTimeout="true"
acceptCount=“100” keystoreFile=“c:\java\certificado.jks” keystorePass=“SenhaDoStore” debug=“0” scheme=“https” secure="true"
clientAuth=“false” sslProtocol=“TLS” />
Usando desta forma, sempre aparecerá uma mensagem avisando que este certificado não é seguro, mas você conseguirá trabalhar sem problemas.
Caso queria que esta mensagem desapareça alternativa é o OPENSSL.
Instale o OPENSSL
Execute os comandos abaixo:
1º Passo
openssl req -config openssl.cnf -new -out c:\java\certificado.csr
2º Passo
openssl rsa -in privkey.pem -out c:\java\certificado.key
3º Passo
openssl x509 -in c:\java\ certificado.csr -out c:\java\ certificado.crt -req -signkey c:\java\certificado.key -days 365"
4º Passo
openssl pkcs12 -export -in c:\java\certificado.crt -inkey c:\java\ certificado.key -out C:/java/ certificado.p12 -name certificado -CAfile C:/java/ certificado.crt -caname certificado -chain
Ao final destes passos você terá um arquivo chamado certificado.p12
Você sabe pra que todos estes comandos???
Quando você descobrir não precisa me contar não.
Acerte o servidor.xml do tomcat para
<Connector port="8443"
maxThreads=“150” minSpareThreads=“25” maxSpareThreads="75"
enableLookups=“false” disableUploadTimeout="true"
acceptCount=“100” keystoreFile=“c:\java\certificado.p12” keystoreType=“PKCS12” keystorePass=“certificado” debug=“0” scheme=“https” secure="true"
clientAuth=“false” sslProtocol=“TLS” />
presta atenção, tem um parâmetro novo no Connector Port:
keystoreType=“PKCS12”
Agora se voce quer que um determinado modulo do seu Site seja acessado apenas via HTTPS adicione o trecho abaixo no web.xml da sua aplicação
<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>