sem problemas, se ja gerou o jks blz, não é que ela não faça nada, ela espera que você passe parametros, mas qualqer duvida posta ai, se eu não souber corremos atras
Valeu cara, agradeço mesmo…
Então gerei um arq jks…
e fiz o código ficou assim:
[code]try {
new Certificado().configurarSSL("", “C:/Users/Suelen/Documents/certificado.jks”, “123456”);
ServicoSolicitacaoWS service;
try {
service = new ServicoSolicitacaoWSServiceLocator()
.getServicoSolicitacaoWS();
service.executarSolicitacao(s, u);
} catch (ServiceException e) {
e.printStackTrace();
}
} catch (RemoteException e) {
e.printStackTrace();
}
[/code]e na outra classe que configura ssl:
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", cert);
System.setProperty("javax.net.ssl.keyStorePassword", senhaCert);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", keystore);
oq to fazendo errado
mas ta dano erro na linha “Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());”
qual o erro ? esta usando netbeans ? o que diz ? não consegue fazer o import ?
Description Resource Path Location Type
Access restriction: The constructor Provider() is not accessible due to restriction on required library C:\Program Files\Java\jre1.6.0_06\lib\jsse.jar Certificado.java /FarmaciaPopular/src/ServicosWS line 12 Java Problem
Description Resource Path Location Type
Access restriction: The type Provider is not accessible due to restriction on required library C:\Program Files\Java\jre1.6.0_06\lib\jsse.jar Certificado.java /FarmaciaPopular/src/ServicosWS line 12 Java Problem
da esses dois erros…
uso o eclipse
Arrumei a linha e agr da o seguinte erro:
[code]17/02/2012 12:58:21 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:77)
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLSocketFactory.getDefault(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:61)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:79)
… 14 more
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.util.DerInputStream.getLength(Unknown Source)
at sun.security.util.DerValue.init(Unknown Source)
at sun.security.util.DerValue.<init>(Unknown Source)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
… 22 more
{http://xml.apache.org/axis/}hostname:RodrigoP
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:77)
Caused by: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
… 11 more
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLSocketFactory.getDefault(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:61)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:79)
… 14 more
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.util.DerInputStream.getLength(Unknown Source)
at sun.security.util.DerValue.init(Unknown Source)
at sun.security.util.DerValue.(Unknown Source)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
… 22 more
[/code]
alguma sugestão???
agora não sei, mas pela mensagem acredito ainda ser rolo na parte do certificado, falando nisto, se gerou o .jks por keytool deve também importar toda cadeia da raiz certificadora para o arquivo de chaves.
Eu consegui gerar o arquivo pelo InstallCert…
Agora o que eu deveria fazer???
isso?
System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”);
System.setProperty(“java.protocol.handler.pkgs”,
“com.sun.net.ssl.internal.www.protocol”);
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, “”);
System.setProperty(“javax.net.ssl.keyStorePassword”, “”);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, “jssecacerts”);
[quote=roodrigo.p]Eu consegui gerar o arquivo pelo InstallCert…
Agora o que eu deveria fazer???
isso?
System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”);
System.setProperty(“java.protocol.handler.pkgs”,
“com.sun.net.ssl.internal.www.protocol”);
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, “”);
System.setProperty(“javax.net.ssl.keyStorePassword”, “”);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, “jssecacerts”);[/quote]
sim, acheque isto ja estava pronto rsrsrsrs.
Estava… kkk… to entrando em tanta coisa aqui e pesquisando, e ainda n consegui faze essa merda…
Mas bom…
Agora esta acusando senha do keystore incorreta
Pronto arrumei, agora deu outro erro:
[code]
17/02/2012 13:45:07 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:srvjhdf42.saude.gov
java.lang.NullPointerException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:68)[/code]
uma pergunta, na hora de configurar o SSL eu envio o jssecacerts, e mais 2 parametros…
no meu caso eu to mandando o jssecacerts, e o outro arquivo jks q criei com o keytool e a senha que cria tbm…
Estou fazendo certo??
ta falando dessas linhas ?
System.setProperty("javax.net.ssl.keyStore", "");
System.setProperty("javax.net.ssl.keyStorePassword", "");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.keyStore", cert);
System.setProperty("javax.net.ssl.keyStorePassword", senhaCert);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", keystore);
essas quatro linhas, to achano que estou mandando errado
System.setProperty(“javax.net.ssl.keyStore”, cert);
cert é um certificado valido né ?
Ó, criei o arq jssecacerts e coloco ele na linha: System.setProperty(“javax.net.ssl.trustStore”, keystore);
Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);
E na coloquei a senha que criei quando criei o arq certificado.jks no keytool, na linha: System.setProperty(“javax.net.ssl.keyStorePassword”, senhaCert);
deve ta errado isso :S
E sobre o erro que coloquei ali em cime vc sabe algo???
[quote=roodrigo.p]Ó, criei o arq jssecacerts e coloco ele na linha: System.setProperty(“javax.net.ssl.trustStore”, keystore);
Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);
E na coloquei a senha que criei quando criei o arq certificado.jks no keytool, na linha: System.setProperty(“javax.net.ssl.keyStorePassword”, senhaCert);
deve ta errado isso :S
E sobre o erro que coloquei ali em cime vc sabe algo???[/quote]
aqui : Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);
pergunto: vc esta consumindo o WS de algum serviço certo ? se sim, eles devem prover o certifcado e não vc criar um, sacou ?
é a mesma coisa que quando consomi um serviço da sefaz, vc precisa comprar um certificado para então consumir o serviço.
AAAA INTENDI, intao no keystore é o certificado do servico, eu to tentano consumir o webservice da farmacia popular…
entao la eu coloco o caminha do certificado no meu pc ou só o nome do certificado, por exemplo: DRT2015.SAUDE.GOV.BR
?
Tamo quase… rsrs
Valeu pela ajuda mais uma vez!
[quote=roodrigo.p]AAAA INTENDI, intao no keystore é o certificado do servico, eu to tentano consumir o webservice da farmacia popular…
entao la eu coloco o caminha do certificado no meu pc ou só o nome do certificado, por exemplo: DRT2015.SAUDE.GOV.BR
?
Tamo quase… rsrs
Valeu pela ajuda mais uma vez![/quote]
isso coloca o caminho até o certificado que deve ser um arquivo.pfx que eles disponibilizam.
Hum…
tem q ser .pfx?
pq ate agora só consegui certificados .cer
[quote=roodrigo.p]Hum…
tem q ser .pfx?
pq ate agora só consegui certificados .cer[/quote]
pode ser sim, da até pra converter.
pfx, p12 – são PKCS #12 DER encoded
Não estou conseguindo o .pfx e os outros tipo dão invalidos…
O unico que deu certo foi o .jks que gerei pelo keytool
E se compilado da aquele erro que coloquei mais acima
Sabe oque pode ser o erro?