Ssl Server(Https)如何阻止连接?

时间:2014-05-29 02:06:47

标签: c# ssl ssl-certificate

这与客户方有关。

我目前正在从事研究工作。我需要连接到服务器(https),但不知怎的,我无法连接到它。 (它是一个Apache服务器)

如果我尝试这样连接:

//Load Certificate          
X509Certificate cert = X509Certificate.CreateFromCertFile(@"some.cer");
//Set Callback
        ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;
//Create Request + assign Cert, Cert is not null
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://myserver.com");
        if (cert != null)
            req.ClientCertificates.Add(cert);
//Process Request
        try
        {
            req.Timeout = 10000;
            WebResponse resp = req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream, Encoding.UTF8);
            Console.WriteLine(sr.ReadToEnd());
        }
        catch (WebException ex)
        {
             Console.WriteLine(ex.Message);
        }

由于Timeout,我最终会抛出一个异常。如您所见,我在这里加载自定义证书。我不是百分百肯定如果它是正确的但似乎是对的。

所以问题是它甚至无法建立连接。只有超时,永远不会调用指定的回调。

我不确定自己做错了什么。我90%肯定证书是对的。是否有其他方法可以阻止不需要的客户端,还是我会错过什么?

0 个答案:

没有答案