Domanda

Mi è stato rilasciato un certificato PKCS # 12 da utilizzare per l'accesso a un semplice servizio web basato su XML. Quando carico il file PKCS # 12 in Windows (Vista), posso accedere al servizio utilizzando il mio browser.

Il tentativo di accedere al servizio tramite un'applicazione, senza caricare le PKCS # 12 nelle collezioni OS certificati, ho scritto il seguente codice:

// The certificate i'm using can not be authenticated as it is a development one. 
// For now, just ignore it.
static bool myRemoteCertificateValidationCallback(
         Object sender,
         X509Certificate certificate,
         X509Chain chain,
         SslPolicyErrors sslPolicyErrors
)
{ return true; }

static void Main(string[] args)
{
    ServicePointManager.ServerCertificateValidationCallback = myRemoteCertificateValidationCallback;
    X509Certificate Cert = new X509Certificate(@"certificatefile.p12","medialab");
    HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("https://ServiceURL");
    Req.ClientCertificates.Add(Cert);

    Stream S = Req.GetResponse().GetResponseStream();
    TextReader TR = new StreamReader(S);
    string Ret = TR.ReadToEnd();
    Console.Write(Ret);

}

Purtroppo questo codice non riesce e ottengo uno System.Net.WebException: La richiesta è stata interrotta: Impossibile creare SSL / TLS canale sicuro. Ho notato che quando faccio caricare il file di PKCS # 12 in Windows, il codice funziona improvvisamente.

Che cosa devo fare per fare che fare con il file da solo ed evitare di utilizzare l'archivio certificati di Windows?

Grazie, Boaz

Più informazioni: appena applicato SP1 al mio Visual Studio e ora ricevo un'eccezione diversa: "Una chiamata a SSPI non è riuscita, vedere Eccezione interna" con l'un'eccezione interna -> "Il messaggio ricevuto era imprevisto o formattato."

È stato utile?

Soluzione

È necessario avere il certificato installato in Archivio certificati. Il modo più semplice è quello di utilizzare IE e importare il certificato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top