La solicitud fue cancelada: No se pudo crear el canal seguro SSL / TLS Excepción

1

Déjame explicarte mi situación.

Creé un certificado autofirmado y lo instalé en la sección Autoridades de certificación de raíz de confianza en MMC.

Luego creé dos certificados usando el certificado autofirmado:

  1. Un certificado con el nombre del sujeto "localhost"
  2. Un certificado con el nombre del sujeto "test.com"

Luego instalé ambos certificados en la sección Personal en MMC.

Luego implementé un servicio web como HTTPS (SSL con aceptar certificados de cliente) en IIS. El certificado utilizado para implementar el servicio web es el que tiene el nombre del sujeto "localhost".

Ahora, tengo un cliente que desea conectarse al servicio web. He añadido con éxito una referencia web al servicio. Este es el código:

            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();

Como puede ver, estoy enviando el certificado "test.com" junto con la solicitud del servicio web. Desafortunadamente, estoy recibiendo esta excepción:

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

¿Cómo puedo resolver este problema? Ya he perdido 3 horas en este tema. Por favor, ayúdame.

    
pregunta Joe Borg 25.04.2013 - 18:39
fuente

1 respuesta

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

Estás usando la tienda LocalMachine. Ponga sus certificados en "Certificados de máquina" en mmc (MMC elevado - > complemento de certificado - > Cuenta de computadora), o use la tienda CurrentUser.

También esta podría ser una mejor pregunta para StackExchange, ya que está relacionado con C # / Programación.

    
respondido por el Sean Madden 25.04.2013 - 19:45
fuente