Accreditamento SDICoop configurazione Certificati Java

Buongiorno a tutti,

abbiamo terminato l’implementazione per la comunicazione con i WS dello SDICoop e dopo aver fatto la richiesta di accreditamento stiamo testando la comunicazione con i WebService…

Al momento dell’accreditamento abbiamo generato cliente.key e cliente.csr.

E ci sono stati rilasciati i seguenti file:

  • SDI-xxxxxxxxxxx_client.cer
  • SDI-xxxxxxxxxxx_server.cer

Certificati di Test:

  • CAEntratetest.cer
  • SistemaInterscambioFatturaPATest.cer
  • testservizi.fatturapa.it.cer

Certificati di Prod:

  • caentrate.der
  • servizi.fatturapa.it.cer
  • SistemaInterscambioFatturaPA.cer

Ho quindi creato due truststore .jks contenenti rispettivamente:

  1. client.jks
  • SDI-xxxxxxxxxxx_client.cer
  • CAEntratetest.cer
  • SistemaInterscambioFatturaPATest.cer
  • testservizi.fatturapa.it.cer
  1. server.jks
  • SDI-xxxxxxxxxxx_server.cer (come chiave usando il certificato e la key il file cliente.key usato per generare il file cliente.csr caricato in fase di accreditamento)
  • CAEntratetest.cer
  • SistemaInterscambioFatturaPATest.cer
  • testservizi.fatturapa.it.cer

Ho configurato sul server jboss wildfly il trustore server.jsk per la connessione https






In fase di inizializzazione della chiamata “it.gov.fatturapa.www.sdi.ws.trasmissione.v1_0.types.RispostaSdIRiceviFile_Type riceviFile”

Ho configurato la chiamata axis con : “AxisProperties.setProperty(“axis.socketSecureFactory”, “com.fatturazioneelettronica.utils.ws.MySSLSocketFactory”);”

Dove in “MySSLSocketFactory” viene utilizzato il truststore “client.jsk”.

Mi ritorna sempre l’errore:

Caused by: (403)Forbidden
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744) [axis.jar:]
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) [axis.jar:]
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) [axis.jar:]
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) [axis.jar:]
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) [axis.jar:]
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) [axis.jar:]
at org.apache.axis.client.Call.invokeEngine(Call.java:2784) [axis.jar:]
at org.apache.axis.client.Call.invoke(Call.java:2767) [axis.jar:]
at org.apache.axis.client.Call.invoke(Call.java:2443) [axis.jar:]
at org.apache.axis.client.Call.invoke(Call.java:2366) [axis.jar:]
at org.apache.axis.client.Call.invoke(Call.java:1812) [axis.jar:]

Qualcuno gentilmente mi sa aiutare?

Grazie mille!

I certificati client e server che ti hanno dato vengono usati sia per i test che in produzione e sono firmati dal certificato nel file caentrate.der e non CAEntratetest.cer. Il certificato CAEntratetest.cer ti serve solo per verificare il loro certificato client in ambiente di test (SistemaInterscambioFatturaPATest.cer).
Non uso java, quindi non so dirti se il resto della configurazione è corretto, ma sicuramente ti manca il certificato caentrate.der.
Leggi anche il mio messaggio in quest’altro topic: [RISOLTO] HTTP 403: forbidden address TrasmissioneFattura

Grazie ora leggo…

Intanto mi sono accorto di un errore grossolando quando inizializzato il contesto SSL richiamavo la versione TLSv1, cambiando il TLSv1.2 il messaggio di errore non e’ piu handshake failure ma (403) forbidden…

Intanto leggo il link che mi hai girato, in attesa di qualcuno che sappia aiutarmi :smiley: