TOMCAT + HTTPS  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
mark_domi
JavaGuru

Membro desde: 30/01/2004 16:35:03
Mensagens: 247
Offline

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>




fui

http://programmerexpert.blogspot.com.br/
Shelson
JavaEvangelist
[Avatar]

Membro desde: 28/08/2003 16:52:00
Mensagens: 452
Offline

O material é seu, ou é de outra fonte ?
Se for de outra fonte, vc pode por favor citá-lo pra galera ?

Obrigado, e parabéns !
[WWW]
mark_domi
JavaGuru

Membro desde: 30/01/2004 16:35:03
Mensagens: 247
Offline

Fui eu mesmo que escrevi depois de muita luta... 1 dia e 1/2 tentando fazer isso ai. e discobrir que não existe material em portugues, e o tutorial que tem no site do tomcat tem umas gafes...

Abraço

This message was edited 1 time. Last update was at 24/08/2005 17:42:35


http://programmerexpert.blogspot.com.br/
luismatos
Smalltalk

Membro desde: 04/04/2006 10:40:19
Mensagens: 3
Offline

Olá mark_domi

Tentei usar o exmplo mas sem sucesso.
O que me acontece é que depois de seguir todos os passos até à parte do conector acontece-me o mesmo que acontecia quando usei o que estava no site do tomcat sobre como configurar o ssl.
Quando faço https://localhost:8443 a página fica a tentar abrir durante algum tempo e depois dá erro a dizer que nao pode apresentar a página.

Já ando à imenso tempo de volta disto e nao consigo colocar a funcionar de maneira nenhuma.

Obrigado a quem puder ajudar.
Luís Matos
Hikari
Thread.start()

Membro desde: 10/05/2006 13:47:23
Mensagens: 26
Offline

Eu tb vou precisar colocar uma das minhas aplicações pra rodar em HTTPS logo, e naum entendi quase nada

Qd tiver tudo pronto aki eu tento esse tutorial, valeu
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

ta dando isso aqui...



alguem sabe oq pode ser?

IGOR BRITO ALVES
@igoralves
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Muito bom!
Da uma enfeitada e transforma num artigo



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

eu instalei o openssl e rodei os comandos q vc colocou... percebi que haviam uns espaços nos diretórios, a correção está aqui:


openssl req -config openssl.cnf -new -out c:\java\certificado.csr

openssl rsa -in privkey.pem -out c:\java\certificado.key

openssl x509 -in c:\java\certificado.csr -out c:\java\certificado.crt -req -signkey c:\java\certificado.key -days 365"

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

IGOR BRITO ALVES
@igoralves
frodrigo
Smalltalk

Membro desde: 01/07/2006 23:08:59
Mensagens: 1
Offline

Boa noite,
Estou desenvolvendo uma aplicação JFS com Eclipse, JDK 1.5 e TOMCAT 5.5. Gostaria de rodá-la sob SSL, porém ao executar minha aplicação https://localhost:8443/gerenciador/index.jsf, depois de alguns segundos é retornado página não encontrada. Sem o módo de seguraça a aplicação roda sem problemas. Segui e revisei todos os passos sugeridos aqui, no how-to do próprio site do TOMCAT e chequei também as variáveis de ambiente. Nos logs do TOMCAT não consta nenhum erro. Alguma sugestão de algo que eu possa verificar?
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

Gerei um certificado com a keytool, seguindo todos os passos, mas nao deu certo o eskema, apareceu uma msg no browser avisando que o certificado era invalido ou corrompido e nao fungou...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
jalberoni
Smalltalk

Membro desde: 05/01/2007 12:07:09
Mensagens: 4
Offline

Essa configuração não funciona , quando tento acessar https://localhost:8443/
página não é carregada, logo a conexão é perdida.Não estou desmerecendo
quem o escreveu ,na minha opinião, o artigo é muito bom porém não está funcionando ou está faltando algum parâmetro na configuração ....
godz
Smalltalk

Membro desde: 25/07/2006 00:53:04
Mensagens: 4
Offline

Comigo funcionou perfeitamente. Estava precisando muito configurar o https no Tomcat e esse post foi uma mão na roda.

Muito obrigado.

Abraço.
maschiojv
JavaChild
[Avatar]

Membro desde: 27/02/2007 18:29:37
Mensagens: 119
Offline

mark_domi, nesse seu exemplo, depois q vc faz o loguin, a sua aplicação continua usando o protocolo https?
Pq no meu caso eu queria q depois do login voltasse ao http. nao teria uma configuração pra fazer as requisições de um determinado contexto serem acessadas por http? ou seja fazer o caminho inverso https --> http.

grato!
raf4ever
GUJ Master

Membro desde: 30/01/2005 01:34:51
Mensagens: 1755
Localização: Fortaleza-Ce
Offline

Pessoal,

mesmo após instalar o openssl,ainda está sendo apresentada a mensagem de certificado inválido,como mostro em anexo.
Há alguma configuração que precise ser feita além das mostradas no texto?

Atenciosamente,
Rafael Roque
ITIL Foundations Certified
Sun Certified Enterprise Architect for Java 2 Enterprise Edition(I)
Sun Certified Web Component Developer for Java 2 Enterprise Edition
Sun Certified Programmer for Java 2 Platform Edition
[Thumb - problemaCertificado.JPG]
 Nome do arquivo problemaCertificado.JPG [Disk] Download
 Descrição
 Tamanho 41 Kbytes
 Baixado:  208 vez(es)


Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
[Email] [MSN]
dtcamargo
Entusiasta Java

Membro desde: 10/05/2006 18:31:10
Mensagens: 15
Offline

Sobre o Errro java.io.IOException: Cannot recover key

Do site: http://www.ponton-consulting.de/ponton/content/e17/e800/e879/index_en.html

Em resumo, o problema eh que o password para a ssl key tem que ser identico ao passoword para o keystore.
EXEMPLO:
keytool -genkey -alias certif -keyalg DSA -keypass 123456 -store pass 123456 -keystore C:/cert.jks -dname "cn=NNN, ou=MM, o=WW, l=XX, S=YY, c=ZZ" -validity 365

Perceba que ambos sao 123456....

Pra quem ta com preguica de ir ao site.. ta ae:
What's going wrong?

This has to do with the password used for the SSL private key.
There is a restriction in the Tomcat server that the password for
the SSL key must be identical to the password for the keystore.
(This restriction is currently not mentioned in the Installation
and Configuration Guide.)

You can fix this by changing the password of your SSL key using
the 'keytool' command line tool. At the command prompt change
to the keystore directory (by default this is the Ponton X/P installation
directory) and type the following:

keytool -keypasswd -alias tomcat -keystore ssl-keystore
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team