5 messaggi dal 23 ottobre 2008
Ciao a tutti,
ho un problema che non riesco a risolvere e tutti i suggerimenti che ho trovato in internet non mi sono stati di aiuto.

Ecco lo scenario.

Ho un applicativo web fatto in vb.net (con visual studio 2005 e che usa il framework 2.0) che gira su una macchina virtuale windows 7.
Questo applicativo deve accedere ad un web service che richiede un certificato di autenticazione client.
Dopo aver installato il certificato (in local computer) e assegnato i diritti all'utente "servizio di rete" (è l'utente con cui gira l'application pool di iis), me lo sono caricato lato codice e lo passo nella chiamata al web service.

'Leggo il nome del certificato dal file di configurazione    
Dim nvc As Specialized.NameValueCollection
    nvc = DirectCast(ConfigurationManager.GetSection("Sogei.WebService/settings"), Specialized.NameValueCollection)
    Dim certificateName As String
    certificateName = nvc("SubjectNameCertificate")

    Dim store As X509Store
    store = New X509Store(StoreLocation.LocalMachine)
    store.Open(OpenFlags.[ReadOnly] Or OpenFlags.OpenExistingOnly)    

    Dim collection As System.Collections.IList
    collection = store.Certificates.Find(X509FindType.FindBySubjectName, certificateName, False)

    If collection.Count = 0 Then
      Throw New Exception("Nessun certificato digitale selezionato.")
    End If

    Dim certificate As System.Security.Cryptography.X509Certificates.X509Certificate
    certificate = CType(collection(0), X509Certificate)

    wsSogei.ClientCertificates.Add(certificate)


Passo poi anche delle credenziali al web service.

E fin qui funziona tutto.

Il problema è quando la chiamata al web service viene fatta, sempre dall'applicazione web, ma dal server di produzione (un windows server 2003).

Anche lì è stato installato il certificato client e sono stati dati i diritti all'utente "network service".

Però mi viene sempre restituito l'errore: Richiesta annullata: Impossibile creare un canale sicuro SSL/TLS

Ho abilitato il tracing e nel file di log generato ottengo (dopo altre cose)


System.Net Information: 0 : [4208] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = 149da0:1b2baf8, targetName = ws.sanita.finanze.it, inFlags = ReplayDetect, SequenceDetect, Confidentiality, AllocateMemory, InitManualCredValidation)
System.Net Information: 0 : [4208] InitializeSecurityContext(numero In-Buffer=2, lunghezza Out-Buffer=0, codice restituito=InvalidToken).
System.Net.Sockets Verbose: 0 : [4208] Socket#59758912::Dispose()
System.Net Error: 0 : [4208] Exception in the HttpWebRequest#1573615:: - Richiesta annullata: Impossibile creare un canale sicuro SSL/TLS..
System.Net Error: 0 : [4208] Exception in the HttpWebRequest#1573615::EndGetResponse - Richiesta annullata: Impossibile creare un canale sicuro SSL/TLS..


La chiamata con SoapUI (sempre dal server di produzione) va a buon fine.

Non so più dove sbattere la testa! :-(

Avete qualche suggerimento?

Grazie

Sara

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.