[RISOLTO] HTTP 403: forbidden address TrasmissioneFattura

Tra l’altro non sono sicuro serva a qualcosa CA agenzia delle entrate test

Ringraziandoti ancora per la disponibilità , volevo chiederti:

  1. ma ad oggi l’errore 403 forbidden address che ti dava all’invocazione del tuo server è superato?
  2. se esegui openssl s_client -connect :443 gli errori 20 e 21 sono ancora li?

Grazie ancora.

Gli errori 20 e 21 sono ancora li, per quanto riguarda errore 403 si é superato… prova a mandare uno screen del tuo editor di configurazione, magari c’é qualcosa che ti sfugge, e ad abilitare il trace di iis, a me é stato molto utile

Eccoti la completa configurazione:
https://drive.google.com/drive/folders/1hVQtMhN-lxeixjjdkxybkDRv0eif3jve?usp=sharing

ti posto un link di drive con gli shot in ordine in quanto non posso postare più di un’immagine.

È usato per firmare il certificato client SdI di test (SistemaInterscambioFatturaPATest.cer, usato da SdI quando si collega al tuo endpoint di test).

Aggiungo questo schemino con i vari certificati forniti che mi sono fatto perché non ci capivo niente neanch’io:

CERTIFICATI DI TEST:

  • testservizi.fatturapa.it.cer: Certificato SERVER esposto dai servizi di test del Sistema di Interscambio, firmato da caentrate.der
  • SistemaInterscambioFatturaPATest.cer: Parte pubblica del certificato CLIENT utilizzato dal Sistema di Interscambio per invocare i servizi di test da noi esposti, firmato da CAEntratetest.cer

CERTIFICATI DI PRODUZIONE:

  • servizi.fatturapa.it.cer: Certificato SERVER esposto dai servizi del Sistema di Interscambio, firmato da GlobalSign (e’ un certificato SSL verificabile anche senza la CA dell’ADE).
  • SistemaInterscambioFatturaPA.cer: Parte pubblica del certificato CLIENT utilizzato dal Sistema di Interscambio per invocare i servizi da noi esposti, firmato da caentrate.der

CERTIFICATI DI CA:

  • caentrate.der: certificato di CA per ambiente di produzione
  • CAEntratetest.cer: certificato di CA per validare il certificato SdI di test

CERTIFICATI NOSTRI:

  • SDI-02667080283.key: chiave privata nostra
  • SDI-02667080283-client.cer: certificato client nostro, firmato da caentrate.der
  • SDI-02667080283-server.cer: certificato server nostro, firmato da caentrate.der

nel mapping dovresti avere una sola regola, con SDI-PIVA che autentica il client, con appunto il tuo certificato, di cui tu possiedi la chiave privata

Scusa Lorenzo…ma perché dovrei usare il mio certificato client per autenticare il client di SDI ?!
In ogni caso con le condizioni che messo dovrei consentire tutti i client che hanno un certificato rilasciato da CA Agenzie delle Entrate e da CA Agenzie delle Entrate Test…in ogni caso ho anche messo quella del client SDI-PIVA.

Lorenzo, posso chiederti uno screenshot della sezione rules?

io le rules le ho fatte validando “Issuer” con CN = CA Agenzia delle Entrate Test
ed anche CN = CA Agenzia delle Entrate

non vedo il senso di validare con un subject di quel tipo, a meno che il certificato client usato da Aged per le chiamate non si chiami proprio in quel modo…

L’errore 20 significa che openssl non conosce la tua root CA. Dovrebbe essere indicata con -CAPath / -CAfile (pem file)
Sul server hai un solo dominio? Altrimenti devi indicare anche -servername

Oppure ci sono errori nel certificato …

Il certificato del client non dovrebbe chiamarsi proprio in quel modo? é il certificato generato in fase di accreditamento

Pipino qui sotto l’output di openssl s_client con l’opzione -CAfile caentrate.cer

Tutto ok…ma continuo ad avere il 403 16 forbidden address…ciò nonostante la configurazione di IIS fatta con manyToOne e con le rules basate su Issuer-CN=CA Agenzia delle Entrate e CA Agenzia delle Entrate Test

il trace (verbose) di iis non ti dà nessuna indicazione ?
Nei log di iis aggiungi anche i campi sull’autenticazione così vedi come si presenta quando ti invoca

Dove attivo il trace verbose di IIS?
In ogni caso nel log attuale trovo:
2018-12-06 18:52:16 W3SVC7 <mioNomeServer> <mioipv4> POST /wsSDI.Services.TrasmissioneFattureTEST.svc - 443 - 217.175.52.231 HTTP/1.1 IBM+WebServices/1.0 - - <mioNomeServer>:443 403 16 2148204809 471

è un modulo da installare, e poi lo configuri come tutti gli altri moduli

403.16 è un qualche problema nella tua config dei certificati CA di Aged sulla tua macchina: https://support.microsoft.com/en-gb/help/942061/error-message-when-you-visit-a-web-site-that-is-hosted-on-iis-7-0-http

qui trovi l’help : https://docs.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

Le regole servono solo se vuoi mappare un utente. In pratica funzionano solo se vuoi autorizzare non per autenticare.
In sostanza se fai un web service dove lavori con db sulla chiamata di sogei gli utenti di windows potrebbero non ti interessarti.
A quel punto puoi disabilitare l’autenticazione iis client perchè così iis controlla solo la validità del certificato client.

Come giustamente hai indicato se mappi un utente il certificato client di sogei ha l’issuer CN=CA Agenzia delle Entrate Test

Ciao GiuseppeZ,
io con openssl ricevo questo errore, uso IIS 7.0 su un PC Windows 7.0 creato un VMware
mi dai una dritta ? Grazieeeee

Ciao Francesca,
io purtroppo ho dovuto, per ragioni di tempo, abbandonare la strada del WS SDI.
In ogni caso la prova con OPENSSL ha un valore molto relativo nel senso che ti da solo la certezza di aver configurato bene l’SSL.
Se esegui il comando
openssl s_client -connect <tuo_servizio_web>:443 -CAfile <CAAgenziaEntrate.cer>
non dovrebbe tornare alcun errore.

Il mio problema era un 403 forbidden, che significava che IIS negava al client dell’agenzia dell’entrate l’accesso al servizio web con il certificato (client) che lo stesso presentava.

La guida per abilitare IIS all’accesso tramite autenticazione client è quella descritta sopra da Lorenzo e Pipino.

si il 403 è probabilmente quello, lo puoi vedere sia sui log IIS sia (meglio) sui trace IIS