3

我正在开发一个调用 REST 服务的 Windows Phone 7 应用程序。托管 Web 服务的第三方在当前环境中具有无效证书。当我在 Firefox 中点击 URL 时,我收到有关证书的警告,并询问我是否要继续。我也在使用 Poster FF 扩展来测试通话。如果我首先接受 Firefox 中的无效证书,它适用于 Poster。如果我不这样做,那么 POSTER 不会提出请求。

在我的 WP7 模拟器中,我根本无法提出请求。我在 EndGetResponse 方法中得到 404。我提出了与海报中相同的请求,所以我知道该请求没有任何问题。我已经使用相同的代码(不涉及证书)成功地访问了另一个 Web 服务,所以我认为这不是代码。我唯一能想到的是 WP7 不允许对无效证书的请求。有没有人遇到过这种情况?有什么办法吗?

有没有办法告诉我的应用程序接受所有通信,即使证书无效?

4

3 回答 3

1

您需要在手机上安装发行方的根 CA 证书。

您可以通过将 RootCA 通过电子邮件发送给电话用户来执行此操作。他们点击附件,它会提示他们询问是否要在手机上安装证书。

完成后,您的请求应该通过。

但是,我不相信有一种方法可以在您的应用程序中以编程方式执行此操作。

于 2010-12-10T06:28:42.217 回答
1

可悲的是,没有办法在电话上做到这一点。通常,即在桌面上,这行简单的代码将禁用证书检查。

System.Net.ServicePointManager.ServerCertificateValidationCallback = (se, cert, chain, sslError) => { return true; };

如果您查看电话上的 ServicePointManager,则没有回调可挂接。这是一个巨大的痛苦。

您是否考虑过写信给服务所有者并询问他们为什么是糟糕的互联网公民?(本质上,你在这里看到的是网络安全,无论好坏)

正如 Matt 所说,您也许可以在 Web 服务器上编写一个简单的继电器。它不一定是一项特殊的服务,而可能只是一个网页,它会为您调用并输出 RAW 文本或 XML。您的电话客户端只是获取此页面并手动选择响应。

只要有强大的意志,必有一条路为你开。

卢克

于 2010-12-09T22:20:54.420 回答
0

我不知道在手机上安装其他证书的方法。

在这种情况下,我会在您的应用程序和第 3 方站点之间创建一个代理服务,并让您的应用程序调用它。如果需要,您可以将代理放在有效证书后面。

于 2010-12-09T19:19:33.713 回答