Acesso com Certificação Digital

Pessoal, Bom dia!

Estou com uma dúvida (um problema).

É o seguinte:

Tem um webservices que utiliza certificacao digital (HTTPS).
Criei um cliente para acessa-lo, mas nao estou entendendo muito bem como fazer para usar a chave-publica dele para poder acessa-lo.

Tenho o meu certificado digital, pela certin sign, e estou com o certificado digital desse webservices que peguei pelo browser mesmo.

Li algo a respeito dizendo que eu tenho que inserir a chave publica dele no meu cacerts, mas nao compreendi muito bem como se faz esse processo.

Eu insiro essa chave publica no cacerts do jdk ou insiro em meu servidor de aplicacao, no caso tomcat 5.5.17?

Vou postar também o erro que me gera quando meu cliente chama esse serviço, segue abaixo:

Cannot create Service instance, service {http://www.ans.gov.br/tiss/ws/tipos/tissLoteGuias/v20102}tissLoteGuiasV2_01_02 not found in the WSDL https://www.amil.com.br/amilwebservices/services/tissLoteGuias?wsdl
Cannot create Service instance, service {http://www.ans.gov.br/tiss/ws/tipos/tissLoteGuias/v20102}tissLoteGuiasV2_01_02 not found in the WSDL https://www.amil.com.br/amilwebservices/services/tissLoteGuias?wsdl
	at com.sun.xml.internal.ws.client.ServiceContextBuilder.build(ServiceContextBuilder.java:66)
	at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:125)
	at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:52)
	at javax.xml.ws.Service.<init>(Service.java:57)
	at br.gov.ans.tiss.ws.clientes.tissLoteGuiasV2_01_02.<init>(tissLoteGuiasV2_01_02.java:34)
	at netra.hsi.tiss.ClienteLoteGuias.consumir(ClienteLoteGuias.java:64)
	at netra.hsi.tiss.ControleClientesWS.direcionaCliente(ControleClientesWS.java:63)
	at org.apache.jsp.rel.rel_005fresumo_005ffatura_005ftransmitir_jsp._jspService(rel_005fresumo_005ffatura_005ftransmitir_jsp.java:91)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:619)

Mensagem de erro = MSG ERRO = CANNOT CREATE SERVICE INSTANCE, SERVICE {HTTP://WWW.ANS.GOV.BR/TISS/WS/TIPOS/TISSLOTEGUIAS/V20102}TISSLOTEGUIASV2_01_02 NOT FOUND IN THE WSDL HTTPS://WWW.AMIL.COM.BR/AMILWEBSERVICES/SERVICES/TISSLOTEGUIAS?WSDL

Se alguém souber, por favor, me ajude a clarear as idéias aqui.

Abraços e bom dia a todos.

Seguinte,

Também tive que implementar esses web services do TISS, e vc tem que incluir a chave publica no cacerts que esta mapeado no seu servidor de aplicação.

Abços

[quote=jamikas]Seguinte,

Também tive que implementar esses web services do TISS, e vc tem que incluir a chave publica no cacerts que esta mapeado no seu servidor de aplicação.

Abços[/quote]

É isso ai que estou me batendo para fazer.

Por exemplo:

abri a url do webservices da AMIL e pelo browser mesmo baixei o certificado deles amil.cer.

Primeiro: Esse amil.cer que eu baixei pelo browser é a chave pública dele?

Segundo: Estou sem saber também como inserir a chave pública no cacerts de meu servidor de aplicação. No meu caso TOMCAT 5.5.17.

Baixei uns tutoriais, mas estou fazendo uma confusão com isso.

keytool - … etc…etc…etc…

Poderia me ajudar a como fazer?

:cry:

A pergunta é vc será o cliente do web services ou o fornecedor do mesmo?

Cliente, basta inserir a URL no browser e ver que a Amil fornece esse web service.

Eu serei o cliente desse webservices.

Então,

Nesse caso vc tem que gerar uma chave publica para a Amil, e ela tem que inserir a chave publica que vc forneceu no cacerts do servidor da Amil.

Thigol… eu tenho a url do web service da AMIL.
Estou sem saber como fazer para inserir a chave publica deles em meu servidor de aplicacao (TOMCAT 5).

E ai da o erro :

CANNOT CREATE SERVICE INSTANCE, SERVICE {HTTP://WWW.ANS.GOV.BR/TISS/WS/TIPOS/TISSLOTEGUIAS/V20102}TISSLOTEGUIASV2_01_02 NOT FOUND IN THE WSDL HTTPS://WWW.AMIL.COM.BR/AMILWEBSERVICES/SERVICES/TISSLOTEGUIAS?WSDL

[quote=jamikas]Então,

Nesse caso vc tem que gerar uma chave publica para a Amil, e ela tem que inserir a chave publica que vc forneceu no cacerts do servidor da Amil.

[/quote]

Será que precisa disso (argh), ou é suficiente que o certificado da autoridade certificadora que emitiu seu certificado (CertiSign) esteja no CACERTS do servidor da Amil? É coisa para se perguntar a eles.

[quote=jamikas]Então,

Nesse caso vc tem que gerar uma chave publica para a Amil, e ela tem que inserir a chave publica que vc forneceu no cacerts do servidor da Amil.

[/quote]

jamikas. Deixa ver se eu entendi.

Eu criei meu certificado digital com a certign sign. Inseri esse certificado no meu servidor de aplicação (TOMCAT 5).

A AMIL tem os webservices, e eu criei os clientes para tal.

Agora eu tenho que passar a chave publica de meu certificado para a AMIl ou a AMIL tem q passar a chave publica do certificado dela para mim?

Então, mesmo tendo um certificado digital de um entidade autorizada vc é obrigado a gerar um chave publica do mesmo , e fornecer a mesma para a empresa que ira fornecer o web services.

Agora você tenho que passar a chave publica de seu certificado para a AMIL.

P… Q… P…

Rpz… imagina ai quantas operadoras de plano de saúde que existem na qual teremos q fazer essa troca.

Aff…

E o contrário disso não é necessário não? Eu não tenho que ter a chave pública da empresa que fornece os webservices ??

:’( :’( … eu vo fica loko meu deos !!! haushausuahs

alguem ja viu esse erro ??

EJB5090: Exception in creating EJB container [javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found]
appId=AEPSTISS moduleName=TissNet3_8_jar ejbName=tissSolicitacaoStatusAutorizacaoV2_01_02
LDR5004: UnExpected error occured while creating ejb container
javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found

:’( :’( … eu vo fica loko meu deos !!! haushausuahs

alguem ja viu esse erro ??

EJB5090: Exception in creating EJB container [javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found]
appId=AEPSTISS moduleName=TissNet3_8_jar ejbName=tissSolicitacaoStatusAutorizacaoV2_01_02
LDR5004: UnExpected error occured while creating ejb container
javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found

P… Q… P… rsrsrsrsrs…

E eu não tenho que ter a chave pública da AMIL também não??

A chave pública da Amil é fácil de obter. Basta pegar o seu navegador preferido, e acessar aquela URL de wsdl.

Você deve clicar no cadeado , e em algum lugar você vai poder pegar e talvez até salvar o certificado da Amil.

P… Q… P…

Rpz… imagina ai quantas operadoras de plano de saúde que existem na qual teremos q fazer essa troca.

Aff…

E o contrário disso não é necessário não? Eu não tenho que ter a chave pública da empresa que fornece os webservices ??[/quote]

A principio não! É realmente essa regra que o governo colocou quebra as pernas.

[quote=thingol]A chave pública da Amil é fácil de obter. Basta pegar o seu navegador preferido, e acessar aquela URL de wsdl.

Você deve clicar no cadeado , e em algum lugar você vai poder pegar e talvez até salvar o certificado da Amil. [/quote]

Thigol… entao a chave publica da amil eu ja tenho pq eu ja fiz isso que vc falou.

que loucura viu… imagine quantas operadoras de saude existem e que eu vou ter q obter e enviar essa chave publica… arghhhhhhhhhhhhh

eh … essa chave vai t q enviar p os caras mesmo … =/ … nao vai t jeito