5 messaggi dal 15 maggio 2015
Da qualche giorno tento di connettermi ai web services sogei per invio dati e interrogazioni relative al 730 precompilato e ricevo l'errore in oggetto: È possibile che il certificato server non sia configurato correttamente con HTTP.SYS nel caso HTTPS o che i binding di sicurezza client e server non corrispondano. Il "bypass" della la verifica del certificato ( System.Net.ServicePointManager.ServerCertificateValidationCallback = Function(sende, certificate, chain, sslPolicyErrors) True
ha finora funzionato, se dipende da questo. Conoscete una soluzione? Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
non è che magari sogei ha modificato qualcosa lato servizio? In caso chiedi alla loro assistenza se sanno di qualche aggiornamento recente. Es. magari ora richiedono TLS 1.2.

Penso che la soluzione più rapida sia quella di rivalutare da capo il loro servizio, cioè: ti crei una nuova applicazione console di prova con .NET Framework 4.7, aggiungi di nuovo il riferimento al servizio e provi a consumarlo (senza bypass).

Tu che tipo di applicazione hai sviluppato, e con che versione del framework?

ciao,
Moreno

Enjoy learning and just keep making
5 messaggi dal 15 maggio 2015
Ciao, ti ringrazio per la risposta, ho risolto il problema e ti spiego dove era l'inghippo.
Il messaggio di errore è in effetti fuorviante perchè non và direttamente al punto.
I programmi che ho scritto sono client per web services sogei, invio dati per il 730
precompilato e interrogazioni relative. L'indizio che mi è saltato agli occhi è stato il fatto che
l'errore era intercettato solo da alcune macchine con windows 7, mentre lo stesso client funzionava
perfettamente su altre con windows 7 e su tutti i pc con windows 10.
Al termine delle indagini sono arrivato alla conclusione che l'errore dipende dalla versione del
protocollo di sicurezza TLS. Nelle macchine windows 7 dove non funzionava il client in effetti non eranostati fatti aggiornamenti importanti al s.o.
La causa del problema è quindi che su windows 7 non aggiornato è attivo il TLS versione 1.0 mentre
sono disattivate le versioni 1.1 e la 1.2. Le tre versioni invece risultano attive su windows 7 aggiornato e su windows 10.
Le soluzioni quindi sono diverse: 1)aggiornare il sistema windows 7, 2)intervenire sul registro
del s.o. con le dovute cautele e competenze, 3)forzare da codice l'utilizzo da parte del client
del protocollo TLS 1.2 aggiungendo la stringa:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
11.886 messaggi dal 09 febbraio 2002
Contributi
Ok, perfetto, grazie per aver condiviso la soluzione

Enjoy learning and just keep making
5 messaggi dal 15 maggio 2015
Ciao Moreno, mi potresti aiutare? Ricevo errore 200 nel tentativo di invio del file.
Non riesco a capire adesso dove è il problema. Ho installato il framework 4.7 come mi hai
suggerito, lavoro in vs2015, ho aggiornato il sanitel.cer e creato un nuovo riferimento al wsdl
del kit aggiornato.
5 messaggi dal 15 maggio 2015
Ho provato ad inviare la richiesta con soapui e il server risponde con lo stesso errore
che ricevo via codice: 200 "Errore nell'applicazione, contattare l'assistenza".
Sentenza generica che non aiuta molto a capire purtroppo.
Ho notato però che a differenza dei test che ho fatto in passato
adesso ricevo un certificato nella sezione "SSL cert". Mi viene il sospetto che il protocollo
TLS 1.2 è corretto perchè il server risponde, successivamente lato client si entra nella validazione
del certificato e non se ne esce vivi.
Tu che ne pensi. L'intoppo potrebbe essere a livello ServicePointManager.ServerCertificateValidationCallback? Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
L'intoppo potrebbe essere a livello ServicePointManager.ServerCertificateValidationCallback?

Non lo so ma per prima cosa vai ad aprire l'indirizzo del servizio nel browser e vedi se ti dà un errore di certificato oppure no. Te ne rendi conto perché il browser ti presenta una schermata tipo questa:
https://discourse-cdn-sjc1.com/business5/uploads/webflow1/optimized/3X/b/6/b6f243a99658648e5b729c9b0b897e6013f8de97_1_668x500.png
Se non vedi quella schermata ma vedi un bel lucchetto di fianco al nome del dominio, allora vuol dire che il certificato è ok e quindi non ti serve aggiungere la chiamata a ServicePointManager.ServerCertificateValidationCallback per bypassare il controllo del loro certificato.


Comunque, avevi detto che le chiamate al servizio avevano sempre funzionato, giusto? Quindi ora, a parte il protocollo TLS 1.2 cosa è cambiato?

Per curiosità: come ti autentichi a questo servizio? Cioè, come dimostri di essere tu? Devi fornire username e password oppure c'è un'autenticazione con un tuo certificato client (di cui tu possiedi sia chiave pubblica che privata)?

Enjoy learning and just keep making
5 messaggi dal 15 maggio 2015
Misteri di sogei. Oggi ho inviato un file di test e il server mi ha risposto "000",
ha accettato e protocollato. Due giorni a scervellarmi senza motivo.
Comunque se può essere utile descrivo il caso brevemente.
L'autenticazione è Basic esplicitata nell'header con username:password in base 64.
L'autenticazione del client tramite certificato non è richiesta, piuttosto la verifica di quello
del server. Infatti senza una ServicePointManager.ServerCertificateValidationCallback
spunta un errore di trust non verificabile.
Senza specificare il protocollo TLS1.2 con System.Net.ServicePointManager.SecurityProtocol
dà l'errore indicato nel titolo del post:"È possibile che il certificato server non sia configurato correttamente con HTTP.SYS nel caso HTTPS o che i binding di sicurezza client e server non corrispondano".
Quando tutto sembra andare bene, un codice 200 "errore nell'applicativo.Contattare l'assistenza"
fà perdere due giorni e due notti per poi risolversi da solo. Basta sedersi ed attendere.
Ti ringrazio della disponibilità

Giuseppe

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.