【问题标题】:Making a WP7 HttWebRequest POST with an untrusted cert?使用不受信任的证书制作 WP7 HttWebRequest POST?
【发布时间】:2011-05-23 00:58:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: silverlight post windows-phone-7 httpwebrequest poster


    【解决方案1】:

    遗憾的是,没有办法在手机上执行此操作。通常,即在桌面上,这行简单的代码将禁用证书检查。

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

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

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

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

    有志者事竟成。

    卢克

    【讨论】:

    • 提示:忘记他们说的话。不要让教科书般的正确方法阻止您将产品推向市场。
    【解决方案2】:

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

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

    一旦你完成了,你的请求就应该通过了。

    我不相信有办法在您的应用程序中以编程方式执行此操作。

    【讨论】:

    • 应该使用哪种证书格式?我试过 pem、crt 和 der 都没有成功。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2012-07-05
      • 1970-01-01
      • 2011-06-06
      • 2020-04-13
      • 2019-05-20
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多