如何在CE / WM中获得X509Chain - CF .net 3.5

时间:2017-01-26 17:03:20

标签: ssl certificate windows-mobile compact-framework windows-ce

这就是完整的.net

X509Chain ch = new X509Chain();
ch.Build(c);
Debug.WriteLine("Chain Information..");
...

我问这个的原因是因为我无法使用紧凑框架Windows移动应用程序中的链式证书将数据发布到安全的https网站。

有许多建议要覆盖ICertificatePolicy并在HttpWebRequest调用期间为cert返回true ...从安全角度来看,这是不可接受的。

public static bool ValidateServerCertificate(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
 //accept all certs.
   return true; 
}

我的解决方案是通过链条进行验证,并通过比较链中每个证书的指纹与设备证书的指纹进行验证。

这就是我想在CF中做的事情 - 如果证书有链或使用某种未在设备上实现的加密,它就无法工作。

  string data = "hello";
  Uri uri = new Uri("https://www.example.com/");
  HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;

 using (var stream = new StreamWriter(request.GetRequestStream())) {
                stream.Write(data);
                stream.Flush();
            }

但由于ssl验证问题,这在GetRequestStream()上失败。

0 个答案:

没有答案