私の状況を説明させてください。
自己署名証明書を作成し、MMCの [信頼されたルート証明機関]セクションにインストールしました。
次に、自己署名証明書を使用して 2 つの証明書を作成しました。
- サブジェクト名が「localhost」の証明書
- サブジェクト名が「test.com」の証明書
次に、両方の証明書をMMCの個人証明書セクションにインストールしました。
次に、Web サービスを HTTPS (クライアント証明書を受け入れる SSL) として IIS にデプロイしました。Web サービスのデプロイに使用される証明書は、サブジェクト名が「localhost」の証明書です。
現在、Web サービスに接続したいクライアントがいます。サービスへの Web 参照を正常に追加しました。これはコードです:
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();
ご覧のとおり、Web サービス要求と共に「test.com」証明書を送信しています。残念ながら、私はこの例外を受けています:
The request was aborted: Could not create SSL/TLS secure channel
どうすればこの問題を解決できますか? この問題ですでに 3 時間を無駄にしています。私を助けてください。