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.
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
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.
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.
:’( :’( … 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