Problema com certificado digital  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

Boa tarde a todos!

estou tentando baixar o certificado pela verisign e nao estou conseguindo.

Consegui gerar um certificado, pelo jdk um .csr. Mas quando tento gerar o da verisign ta dando erro.

me disseram q tinha q ser um .keystore e nao um .csr como gerei.

alguem tem algum caminho de como gerar isso?

configurei o certificado que gerei no tomcat e beleza. Meu serviço é acessado via https, quando vou fazer meu cliente enviar mensagem para meu serviço estoura um erro do validador de certificado, como se nao fosse valido (algo como o nivel menor que o exigido)

abraços



Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

CONSEGUI!!!

Enfim, gerei um certificado digital para meu Web Services.
Como não foi tudo através de uma única referência, no lugar de colocar um monte de links aqui (que por sinal são todos em inglês), vou gerar um passo-a-passo, em português, de como gerar e instalar o certificado digital (SSL) e como definir no seu web container (TOMCAT ou JBOSS, no meu caso) a utilização deste certificado.

Ai sim, devo terminar hoje mesmo. E já posto aqui a solução,.
se for possível, posso até colocar como artigo aqui.

abraços a todos. Qq dúvida, estamos aqui para ajudar.

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

Galera o passo-a-passo que falei esta quase pronto. É que estou com o tempo apertado, pois to fazendo um Compilador que ta me tirando o sono.

Tô com uma dúvida sobre SSL que se alguém puder me esclarecer, eu agradeço muito.

é o seguinte:

gerei um certificado trial pela verisign, apenas como teste, e fiz meu web services ser acessado via https. Uma coisa que não entendi foi o seguinte:

meu cliente só consegue enviar arquivos para meu serviço se eu der a meu cliente o meu certificado. Quando executo meu cliente tenho que estar com o certificado digital do serviço na máquina e passar o arqumento com o caminho do certificado. Caso contrário ele explode exceções dizendo que deu erro na validação do certificado e por ai.

Sabem me dizer o porque disso?

abraços

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline

Como o certificado é "trial" ele foi emitido por uma autoridade certificadora que não está presente no banco de dados que contém as autoridades certificadoras (você não disse se seu cliente usa .NET ou Java, mas é mais ou menos a mesma coisa - só ficam em lugares diferentes.)

Você teria de usar um certificado "de verdade" e ver se a autoridade certificadora raiz está presente na lista de autoridades certificadoras confiáveis.
[WWW]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

valeu thingol.


outra coisa,

criei agora um certificado gerando pelojdk mesmo, através da ferramenta keytool. Agora meu cliente só consegui enviar a mensagem para meu web service se eu der a ele minha chave privada .keystore para que ele passe pelo vmargs.
Testei exportando uma chave publica pelo comando keytool -export e n funcionou, explode as excessoes de erro no certificado de novo.

sabe algo sobre isso?

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline

Queria fazer uma pergunta. O seu cliente do Web Service é em Java ou em .NET? (Ou em VB 6.0 mesmo )
É que é útil saber esses "detalhes sangrentos".
[WWW]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

É Java mesmo.
Aqui só uso java pra tudo.

gerei um certificado através do keytool do jdk e estou setando no server.xml o certificado.keystore (q é minha chave privada). Exporto a chave publica e mando meu cliente enviar o arquivo usando a publica e n funciona, só vai se o cliente usar a chave privada.


Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline

Quando você usa os Web Services não deveria ter um certificado (com chave privada) para o cliente e outro para o servidor? Não é isso que (talvez) esteja dando problema?

O correto, se você vai usar certificados de teste, é o seguinte:
- Cadastrar uma autoridade certificadora (mesmo que seja de teste) no keystore do cliente e do servidor (algo como keytool -import -trustcacerts )
- O cliente deve ter um certificado emitido por essa autoridade certificadora, assim como o servidor (mas aí as chaves privadas são diferentes)
- Como ambos os certificados são "válidos" (ou seja, emitidos por certificadoras "trusted") então deveria funcionar tudo OK
-

E além disso, poderia imprimir qual é a tal "exception" que explode? Por lá dá para ter uma idéia aproximada do que está ocorrendo, afinal.
[WWW]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

thingol, gerei o certificado.jks e exportei a publica certificado.x509, setei o certificado.jks no server.xml do TOMCAT e na hora de executar meu cliente passei
-Djavax.net.ssl.trustStore=c:\certificados\certificado.x509 (q é minha chava pública) e explode a seguinte exceção:



lendo aqui me gerou uma dúvida sobre a geração da chave pública.
meu procedimento todo de criação das chaves são esses:




e para o que seria a extração da chave pública é:



Estou errando em algo? Vi falar sobre ter que importar algo para o certificado.

[só funciona se passar o certificado.jks se passar o certificado.x509 explode essa exceção acima]

Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline


-Djavax.net.ssl.trustStore=c:\certificados\certificado.x509


O "trustStore", como o nome diz, não pode ser um certificado, e sim um keystore.
[WWW]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

onde eu acho um material legal que me explique isso de trutstore, keystore... ???
Já tô te incomodando demais neh meu velho...

me explica uma coisa:

o que vem a ser o trutstore? como eu faço para extrair ele de meu certificado para poder usar na chamada do meu cliente a meu serviço??


Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline

O truststore é um keystore que contém apenas certificados de autoridades certificadoras válidas.
Um exemplo é o arquivo cacerts que vem com o JDK e pode ser modificado, se quiser. (senha: "changeme").
[WWW]
rbamartins
JavaEvangelist
[Avatar]

Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline

valeu thingol, mais uma vez.

ja fiz o orçamento dos certificados digitais, de acordo com minha necessidade, e amanha daremos inicio ao processo de compra do certificado.
Acho que terei menos problemas do que tive com o certificado trial.

abraçao e boa noite man.


Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com


"Um homem forte se defende sozinho, o homem mais forte defende os outros."
[Email] [WWW] [MSN]
falvesti
JavaBaby
[Avatar]

Membro desde: 17/10/2007 06:57:33
Mensagens: 89
Localização: São Paulo - SP
Offline

Cara estou com algumas dúvidas a respeito de certificado também....

O certificado do servidor precisa ser salvo no cliente? preciso colocar ele no meu keystore?

Como funciona exatemente os certificados servidor e cliente?

abraços

Fernando da Cunha Alves
Consultor Java
falvesti@gmail.com
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team