La richiesta è stata interrotta: Impossibile creare Eccezione canale sicuro SSL / TLS

1

Lascia che ti spieghi la mia situazione.

Ho creato un certificato autofirmato e l'ho installato nella sezione Autorità di certificazione fonti attendibili in MMC.

Ho quindi creato due certificati utilizzando il certificato autofirmato:

  1. Un certificato con il nome soggetto "localhost"
  2. Un certificato con il nome soggetto "test.com"

Ho quindi installato entrambi i certificati nella sezione Personal dei certificati in MMC.

Quindi ho implementato un servizio Web come HTTPS (SSL con i certificati client accettati) in IIS. Il certificato utilizzato per distribuire il servizio Web è quello con il nome soggetto "localhost".

Ora, ho un cliente che vuole connettersi al servizio web. Ho aggiunto con successo un riferimento web al servizio. Questo è il codice:

            ClientServices web_service = new ClientServices();
            X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
            store.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "test.com", true);

            if (col.Count == 1)
            {
                ServicePointManager.Expect100Continue = true;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
                web_service.ClientCertificates.Add(col[0]);

                try
                {
                    string hello = web_service.HelloWorld();
                    int add = web_service.add(4, 31);
                    int sub = web_service.subtract(30, 10);

                    Console.WriteLine(hello);
                    Console.WriteLine(add);
                    Console.WriteLine(sub);
                }
                catch (WebException e)
                {
                    Console.WriteLine(e.Message.ToString());
                }
            }

            else
            {
                Console.WriteLine("The certificate was not found!");
            }
            Console.ReadKey();

Come puoi vedere, sto inviando il certificato "test.com" insieme alla richiesta del servizio web. Sfortunatamente, sto ricevendo questa eccezione:

The request was aborted: Could not create SSL/TLS secure channel

Come posso risolvere questo problema? Ho già perso 3 ore su questo problema. Per favore aiutami.

    
posta Joe Borg 25.04.2013 - 18:39
fonte

1 risposta

0
        X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);

Stai utilizzando il negozio LocalMachine. Inserisci i tuoi certificati in "Certificati macchina" in mmc, (elevato MMC - > snap-in certificato - > Account computer) oppure utilizza il negozio CurrentUser.

Anche questa potrebbe essere una domanda migliore per StackExchange poiché è C # / Programmazione correlata.

    
risposta data 25.04.2013 - 19:45
fonte