Ricezione notifiche: java.io.IOException: Unable to decrypt message

Ciao a tutti,

ho avuto l’accreditamento al SDICoop, sono riuscito (credo) ad installare correttamente i certificati sul server, e sto tentando di superare i test di interoperabilità.

Riesco ad inviare le fatture al SdI, ma non ricevo le notifiche in quanto, nel mio pannello, nei dettagli dei flussi, vedo che c’è sempre un errore “java.io.IOException: Unable to decrypt message”. Credo che sia un problema di conferma del certificato dal parte del mio server, ma credo di aver impostato tutto correttamente, per quello che mi è sembrato di capire dai vari forum.

Premetto che ho un Windows Server 2008 R2 Enterprise con IIS 7.5, e sto realizzando tutto in PHP con estensione MTOMSoapClient e SEISOAPServer.

Questa è la mia situazione:

  • Il mio endpoint client ha il binding SSL su porta 443 associato al certificato server che ho creato dai certificati che mi sono stati inviati da Sogei.
  • In “Impostazioni SSL” ho attivato l’opzione Richiedi SSL, con Accetta o Richiedi, ho provato tutti e due.
  • In “Autenticazione” ho disattivato l’Autenticazione anonima (comunque ho provato anche ad attivarla)
  • In “Editor di configurazione”, ho abilitato system.webServer/security/authentication/iisClientCertificateMappingAuthentication.
    Ho provato sia con “manytoOne”, inserendo nome utente e password di amministratore e inserendo i giusti valori nelle regole (Issuer – CN - CA Agenzia delle Entrate Test),
    sia “oneToOne” inserendo nome utente e password di amministratore e il contenuto (senza begin certificate e end certificate) del certificato SistemaInterscambioFatturaPATest.cer
  • In MMC -> Certificati (computer locale) -> Personale -> Certificati, sono presenti sia i certificati SDI-xxxxxxxxxxx-client e SDI-xxxxxxxxxxx-server, che il certificato Sistema di Interscambio Fattura PA test, che serve appunto per autenticare le notifiche in arrivo, credo…

NIENTE DA FARE! Sempre lo stesso errore… Non ho fatto qualcosa oppure ho sbagliato qualcosa?
Grazie per il vostro aiuto.

Allego le schermate di dettaglio flusso e step avanzamento: la fattura viene scartata per un errore di “File non integro (firma non valida)”, ma questo è un problema che vedrò dopo.
Quindi, poi, credo di capire che il SdI invia una notifica di scarto al mio endpoint clientsdi.xxxxx.it, ma non viene consegnata per l’errore “unable to dectrypt message”.


Infatti, poi, negli step di avanzamento, lo step “notifica di scarto” risulta non superato perché la notifica non viene consegnata. Almeno, questo mi sembra di capire….

Ho risolto!!! Ho cancellato e ricreato le impostazioni del mio endpoint sul server, senza applicare nessuno dei consigli su questo forum, e adesso riesco a ricevere le notifiche! Pensa che, nonostante ovunque sia scritto che bisogna impostare l’opzione “Richiedi SSL” in “Impostazioni SSL”, ho scoperto che nel mio caso questa opzione era “dannosa” e provocava il messaggio “unable to decrypt message”! Eppure all’inizio del “viaggio”, questa impostazione non la conoscevo nemmeno, eppure la ricezione non funzionava lo stesso… Per non parlare delle varie impostazioni di iisClientCertificateMappingAuthentication, oneToOne, manytoOne e compagnia bella: inutili! A me funziona senza nulla di questo…. Mah!!!

Ciao Roberto,
in che modo hai firmato il file ? Io ho mandato l’xml al commercialista che mi ha passato indietro un file .p7m

Ho provato a mandare sia questo file (.xml.p7m) che lo stesso file (dove ho rimosso .p7m) e mi dice:

File non integro (firma non valida) : Errore di formato Il file firmato p7m non risulta integro

Se mando un file non firmato (a 0000000) lo riceve correttamente.

E’ la stessa cosa che ho fatto io: ho fatto firmare il file dal commercialista (in fase di test non importa di chi sia la firma, basta che sia del formato giusto) e ho inviato il file p7m. Il sistema l’ha ricevuta regolarmente.

Quindi su IIS hai ricreato un nuovo “website”, il binding HTTPS da zero e poi come hai impostato tutto il resto?