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:
- Un certificato con il nome soggetto "localhost"
- 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.