menu di navigazione del network

[RISOLTO] HTTP 403: forbidden address TrasmissioneFattura


(Lorenzo) #1

Buongiorno a tutti,

Sono nuovo sul forum, ma grazie ai vostri post sono riuscito a impostare la comunicazione con l’interscambio, purtroppo riesco a inviare le fatture, ma non riesco a ricevere le notifiche dall’interscambio, che mi restituisce questo errore.


Lavoro con php, e abbiamo impostato un soapServer all’indirizzo di endpoint. Il server é windows, abbiamo importato il certificato server e impostato come certificato ssl del bindings.
Abbiamo importato i certificati CAentrate e CAentrateTest come certificati di root attendibili e i certificati testservizi.fatturapa.it e servizi.fatturapa.it come certificati intermedi.
provando a raggiungere il SoapServer da un file di test il server riceve le richieste.
Qualcuno di voi ha una struttura simile ed é riuscito a risolvere? grazie in anticipo a tutti


(Nico) #2

Hai impostato sul web server il certificato client SDI-PIVA tramite iisClientCertificateMappingAuthentication ? Quando sdi fa la chiamata al tuo server si presenta con un certificato che deve essere validato


(Lorenzo) #3

Ciao Pipino,
Grazie per la risposta, ho settato un mapping oneToOne in questo modo:


é corretto? purtroppo ottengo ancora lo stesso errore,
Ti ringrazio in anticipo


(Nico) #4

Abilita solo un ManyToOne
metti un nome che vuoi univoco (perchè ad esempio potresti avere altri certificati client sulla stessa macchina)
metti una descrizione
user/password di un utente windows che ha i permessi di lettura sul certificato client SDI-PIVA (i permessi li dai nella gestione certificati di windows (tasto dx sul certificato cliente->all tasks -gestisci chiavi private…)
-permission mode allows

poi in rules aggiungi
certificate field : subject
certificatesubfield: CN
match criteria : SDI-yourpartitaiva
comparecasesensitive: true

Chiudi le maschere e dai l’apply finale per memorizzare le modifiche
Queste impostazione sono valide se vuoi mappare un utente windows mappato con il certificato presentato da sdi (esempio se non stati usando l’utente pool della tua web app per scrivere in file system)


(Lorenzo) #5

Grazie ancora per il tuo supporto,
ieri sera ho settato manyToOne come mi hai indicato, purtroppo non riesco ancora ad ottenere risposta dal SDI, inoltre i miei test sono stati stroncati, dal fatto che i server SDI sono praticamente sempre down in queste ultime ore.
Mi é venuto in mente peró di provare a connettermi con openssl al mio dominio e il risultato é questo:


In particolare error 21 puó essere un problema?


(Nico) #6

ma dalla gestione certificati i certificati SDI(client/server) li vedi trustati con quelli della ca delle entrate ?
-Installa i pfx (server/client), sistema di interscambio, test in personal
-in radici attendibili la CA e la CA test che sono quelle che trustano tutte quelle in personal
-in iis binda solo https l’sdi_server
-metti in impostazione ssl : flag richiedi ssl e richiedi


(Lorenzo) #7

Sistema di interscambio test e sistema di interscambio li ho caricati come certificati intermedi, faccio subito questa modifica, ti faccio sapere, grazie mille


(Lorenzo) #8

Ho ricevuto ora la risposta dall’interscambio! Grazie mille per il tuo supporto!


(Nico) #9

Bene, felice che tu abbia risolto


(Lorenzo) #10

Ed eccomi ancora:tired_face:
dopo una prima iniziale notifica arrivata non so per quale motivo, ora ho un nuovo errore:

org.apache.axis2.AxisFault: HTTP ( 405 ) Method Not Allowed address : https://26.2.162.231:80

come se non il webservice non implementasse la notifica, a questo punto in teoria il server é raggiunto, si tratta di andare a verificare la correttezza del codice?

Anche dopo aver spostato i certificati(di cui vedo la catena Caentrate->SDI-PIVA) chiamando openssl s_client -connect ottengo lo stesso errore 20/21 unable to identify local issuer


(Nico) #11

il 405 fa riferimento all’RFC 2616 quindi sembra che tu non stia implementando il verbo corretto nel ws. Normalmente la causa di questo errore è dovuta al fatto che ci sono più gestori delle stesso verbo/metodo e uno dei gestori sta bloccando il gestore previsto per la gestione della richiesta.
Abilita il trace di IIS così verifichi qual’è il gestore che sta creando problemi. Nell’IISClient Mapping configurato hai un solo nome univoco (il campo name quello con la ‘chiave’) ? Verifica da iis nell’ iis mapping client con il pulsante search configuration (verifica i web.config e applicationhost.config)


(Lorenzo) #12

nell’ iss client ho un solo nome univoco. Guardando i trace:
failedRequest url=“https://debug.omnipos.eu:443/fatturazione/trasmissione
siteId=“2”
appPoolId=“DefaultAppPool”
processId=“5024”
verb=“POST”
remoteUserName=""
userName=""
tokenUserName=“NT AUTHORITY\IUSR”
authenticationType=“anonymous”
activityId="{800002E8-0001-FC00-B63F-84710C7967BB}"
failureReason=“STATUS_CODE”
statusCode=“200”
triggerStatusCode=“405”
timeTaken=“141”
xmlns:freb=“http://schemas.microsoft.com/win/2006/06/iis/freb

Come se l’autenticazione tramite certificato non venga diciamo proposta


(Nico) #13

quando ti sei accreditato hai indicato un endpoint completo ? cioè fino all’asmx, svc tanto per interderci
impostazione ssl : flag richiedi ssl e richiedi l’hai messa ?


(Lorenzo) #14

impostazione ssl si, per quanto riguarda l’endpoint é questo: https://debug.omnipos.eu:443/fatturazione/trasmissione e tramite web.config punta al trasmissione.php?wsdl


(GiuseppeZ) #15

Ciao a tutti.
Condivido anch’io lo stesso problema del codice di errore 20 e 21 e questo nonostante abbia eseguito tutti i passi consigliati da Pipino.
Il mio WS gira su IIS 10 e Windows server 2016.

Da quanto ho visto in giro sembra che nella risposta data al client non venga fornita la “certificate chain” completa al client, il quale non fa (come tipicamente fanno i browser) il certificate discovery.

Infatti: facendo il test openssl s_client con il server testservizi.fatturapa.it la chain in risposta è completa:
image


(Lorenzo) #16


finalmente sono riuscito a ottenere la mia notifica, il problema era come dicevi tu, un conflitto con un web.config che non vedevo dall’editor di configurazione, ma che ho trovato spulciando nel file
Grazie mille


(Nico) #17

Bene. Strano che il trace non ti abbia dato maggiori dettagli. Avevi impostato su verbose ?


(GiuseppeZ) #18

Avete qualche consiglio su come risolvere il problema relativo all’errore 20 e 21 ?


(Lorenzo) #19

sisi, in realtá grazie al trace sono riuscito a capire che tipo di autenticazione stesse provando o non stesse provano

Per quanto riguarda l’errore 20 e 21, non ho piu provato a fare la connect, ma penso che siano rimasti li,non credo diano problemi


(GiuseppeZ) #20

Ciao Lorenzo grazie della risposta.
Dal momento che a te adesso funziona ti dispiacerebbe dirmi se openssl s_client continua a darti l’errore 20 e 21?
A me da sia l’errore 20 e 21 che errore alla ricezione dell’esito di trasmissione.

Il certificato server (con la chiave) utilizzato per il binding al sito l’ho generato da IIS cliccando su Certificati > Completa richiesta di certificato e dandogli in pasto il certificato server (.cer) che mi ha inviato la SOGEI.

Lorenzo, hai fatto nessuna particolare configurazione a IIS o al sistema operativo?