403 - Forbidden su endpoint RiceviFile

Ciao a tutti, e scusate il disturbo; stiamo provando da un pò ad effettuare i test di invio fatture allo SDI senza successo e l’assistenza è di scarsissimo aiuto.

Come stack tecnologico usiamo Java e Spring Boot e volevo chiedervi prima di tutto un chiarimento:
noi abbiamo associato i certificati prodotti tramite il kit di SDI al nostro Application Server Tomcat; è tutto ciò che c’è da fare per quanto riguarda i certificati? O c’è bisogno (come ho letto in qualche topic) di “associare” i certificati manualmente da codice per ogni richiesta che viene effettuata allo SDI?

Perchè noi in pratica ogni volta che proviamo a contattare l’endpoint RiceviFile con un codice molto simile al tuo riceviamo un bel Forbidden 403.

Se importo il certificato all’interno di Firefox riesce senza problemi a contattare sia https://testservizi.fatturapa.it/ricevi_file che a scaricare il wsdl da https://testservizi.fatturapa.it/SdI2AccoglienzaWeb/SdIRiceviFile_service/WEB-INF/wsdl/SdIRiceviFile_v1.0.wsdl

Abbiamo anche provato ad effettuare una chiamata tramite SOAP UI, agganciando il file .jks seguendo anche i consigli di questo topic ( Test Interoperabilità Certificati), ma riceviamo solo questo errore:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
     <soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/">
        <faultcode>axis2ns1:Server</faultcode>
        <faultstring>Internal Error</faultstring>
        <detail/>
     </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

Ti ringrazio!!

Il certificato server (+ il certificato della CA Entrate) che hai installato in Tomcat viene usato quando SdI colloquia con te per inviare notifiche o fatture passive.

Quando tu colloqui con SdI per inviare una fattura o un esito, devi autenticarti presso il loro server inviando il certificato client, una possibilità prevista dal protocollo TLS (ma sconosciuta al di fuori dell’ambiente enterprise). In pratica, anziché identificarti usando un username e una password, lo fai inviando un certificato. Tale autenticazione client va configurata nel codice Java che effettua la chiamata all’endpoint.

1 Mi Piace

Grazie Marco, alla fine siamo riusciti a superare questo scoglio.
Ora siamo impelagati con la ricezione delle notifiche :slight_smile:

1 Mi Piace