Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327

    [java] importazione certificato p12 all'interno di un JKS

    Salve,
    ho un piccolo problema e spero che riusciate ad aiutarmi perchè non so più dove sbattere la testa.
    Veniamo al dunque, piccola premessa prima:
    ho sviluppato un client in java che comunica in SOAP SSL, grazie ad Axis, con un WebService in remoto. Questa di seguito è la configurazione ssl che ho fatto all'interno della mia applicazione java e che mi permette di far funzionare tutto regolarmente.

    codice:
    //truststore contenente il certificato pubblico
    System.setProperty("javax.net.ssl.trustStore", "newstore");
    System.setProperty("javax.net.ssl.trustStorePassword", "123456");
    System.setProperty("javax.net.ssl.trustStoreType","JKS");
    
    //keystorestore contenente il certificato privato
    System.setProperty("javax.net.ssl.keyStore", "certificato.p12");
    System.setProperty("javax.net.ssl.keyStorePassword", "654321");
    System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
    Come si può vedere dalla configurazione, come truststore utilizzo un JKS, invece come keystore utilizzo direttamente il p12 che mi ha fornito il cliente. In questo modo l'handshake con il server in remoto funziona alla grande e riesco ad accedere al WebService.
    Adesso però ho l'esigenza di mettere anche il p12 all'interno di un JKS, in modo tale che possa avere più di un certificato al suo interno, ma purtroppo ho riscontrato qualche problema.
    Ho importato un p12 all'interno di un JKS in questo modo

    codice:
    keytool -v -importkeystore -srckeystore my.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS
    eseguendo il comando mi viene chiesto di inserire la pass di destinazione e successivamente quella di origine, inserisco tutto e l'importazione avviene correttamente.

    A questo punto carico il keystore all'interno di java in questo modo

    codice:
    System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
    System.setProperty("javax.net.ssl.keyStorePassword", "654321");
    System.setProperty("javax.net.ssl.keyStoreType", "JKS");
    provo a connettermi al WebService in remoto ma non riesco più e ottengo questa eccezione

    codice:
     java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
    se invece rimetto il p12 come keystore tutto ritorna a funzionare... c'è qualcuno che può darmi una mano? non so più che fare, su internet non ho trovato molto nello specifico... dove sbaglio?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non riesce a creare il contesto SSL con il nuovo keystore da te fornito

    com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl

    non è istanzianta, è da vedere il resto dello stacktrace
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    Originariamente inviato da valia
    non riesce a creare il contesto SSL con il nuovo keystore da te fornito

    com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl

    non è istanzianta, è da vedere il resto dello stacktrace
    questo è lo stacktrace

    codice:
    default context init failed: java.security.UnrecoverableKeyException: Cannot recover key
    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 WebService.ServiceSoapStub.ACCESS(ServiceSoapStub.java:367)
    	at it.sviluppo.SoapTest.main(SoapTest.java:95)
    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.security.UnrecoverableKeyException: Cannot recover key
    	at sun.security.provider.KeyProtector.recover(Unknown Source)
    	at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
    	at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
    	at java.security.KeyStore.getKey(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source)
    	at javax.net.ssl.KeyManagerFactory.init(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:D74X622J
    
    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 WebService.ServiceSoapStub.ACCESS(ServiceSoapStub.java:367)
    	at it.sviluppo.SoapTest.main(SoapTest.java:95)
    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.security.UnrecoverableKeyException: Cannot recover key
    	at sun.security.provider.KeyProtector.recover(Unknown Source)
    	at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
    	at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
    	at java.security.KeyStore.getKey(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(Unknown Source)
    	at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source)
    	at javax.net.ssl.KeyManagerFactory.init(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

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    prova a concentrarti su questo

    codice:
    default context init failed: java.security.UnrecoverableKeyException: Cannot recover key
    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:
    è lato axis, non so se hai cercato in dettaglio questo, detta così non so dirti altro, sarebbe da vedere la configurazione che usi e come imposti i meccanismi di sicurezza
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    grazie mille per il tuo aiuto, sto cercando info maggiori su quello che mi hai consigliato ma ancora non ho trovato nulla di concreto nello specifico, neanche qualcosa che si avvicina al mio problema, ogni utente ha la sua storia...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.