10.812 messaggi dal 09 febbraio 2002
Contributi
Ciao,
all'inizio non mi era chiaro il perché la richiesta al webservice fallisse senza neanche entrare nella callback.
Quindi ho usato questo tool online per farmi venire un'idea. Ti dà informazioni su un server HTTPS e sul certificato che espone.
https://www.ssllabs.com/ssltest/index.html

Scorrendo il risultato, verso l'inizio, sono elencati i protocolli supportati e solo il TLS 1.2 risultava esserlo. Ho provato ad impostarlo esplicitamente e ha funzionato.

Col senno di poi, mi sarebbe dovuto venire in mente che il problema poteva essere il protocollo perché se la richiesta HTTPS fallisce con "Impossibile creare un canale sicuro SSL/TLS" senza che la callback venga chiamata, allora il problema non può che essere nella fase di negoziazione. Come vedi in questa immagine, il server manda il suo certificato solo dopo aver negoziato con il client le "security capabilities" tra cui la versione del protocollo da usare.

Non ci sono arrivato subito anche perché ci sono delle cose che ancora mi sono oscure, tipo: perché il client .NET non ha provato i vari protocolli che gli sono noti prima di dire che è "Impossibile creare un canale sicuro SSL/TLS"? Sarà che il valore di default di SecurityProtocol non include TLS 1.2? Bisognerebbe andarsi a guardare il sorgente per capire come funziona.
https://github.com/Microsoft/referencesource/blob/master/System/net/System/Net/ServicePointManager.cs

ciao,
Moreno

Enjoy learning and just keep making
3 messaggi dal 07 febbraio 2018
Ciao a tutti,
ho anche io il medesimo problema con lo stesso web service dello sdi.

Ho provato sia senza wcf aggiungendo un riferimento web al servizio, e non ho problemi con i certificati (in quanto la callback viene correttamente richiamata) quindi il web services viene invocato ma ottengo un errore di parsing nella risposta (in formato MTOM da quant ho capito) anche usando WSE ed impostando ReuireMTOM ci sono errori di parsig della risposta.

Sto riprovando ora con WCF quindi facendo aggiungi riferimento a servizio web. Ed ho lo stesso problema indicato nel presente post. Ho impostato il protocollo tls a 1.2 ma ottengo sempre

Connessione sottostante chiusa: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS..

con una inner exception con il seguente messaggio

Il certificato remoto non è stato ritenuto valido dalla procedura di convalida

La callback sulla validità del certificato non viene mai richiamata anche se impostata ho visto gli esempi linkati

public static void SetCertificatePolicy()
{
ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;
}

/// <summary>
/// Certificate validation callback
/// </summary>
public static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
return true;
}

chiaramente richiamo il metodoSetCertificationPolicy prima di chiamare il servizio.

Volevo sapere poi come avevate risolto.

Grazie mille

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.