Windows Phone 8 and HTTPS/SSL

11
我需要在Windows Phone 8.0应用程序中通过HTTPS连接到Web服务。似乎Microsoft没有提供关于此问题的客户端SSL支持。
我真的需要知道如何处理WP8中的证书。哪个是正确的证书?哪些证书需要导入?
场景:我有一个https终端点:https://10.1.1.2,当我从我的PC连接到那里时,会提示我查看和安装服务器的证书。证书名称“根CA”被本地保存。同样的证书在移动设备上安装没有问题。当我从移动互联网浏览器打开https://10.1.1.2时,它会通知我网页是安全的,并让我选择关闭或继续页面。我点击继续,https://10.1.1.2的交易就会发生。每次我通过移动互联网浏览器访问相同的URL时,都不会向最终用户发出关于安全性的警告。
根据Microsoft的说法:在大多数情况下,您不需要采取任何措施来启用此功能,只需使用以https://协议方案开头的地址即可。然后,Windows Phone会检查Web服务返回的证书,如果该证书来自于Windows Phone OS 7.1的SSL根证书中列出的受信任机构之一,则Windows Phone应用程序平台将与Web服务一起使用证书加密所有进一步的通信,包括如前所述的身份验证凭据交换。尽管您可以在Windows Phone上安装受信任的证书,但在当前版本中,Windows Phone应用程序平台不向应用公开这些证书的值。因此,在当前版本中,您无法使用存储在根存储区中的证书实现双向身份验证场景-客户端除接收证书外还发送自己的证书到Web服务。

那么,这个过程可以吗?我不能使用Microsoft默认信任的证书颁发机构之一。我需要编写代码吗?


2
你尝试通过清单文件添加SSL了吗?就像这个链接https://dev59.com/9XvZa4cB1Zd3GeqP_iRX - Kulasangar
不,它是客户端的。 - Kulasangar
2
如果您使用的证书是用于SSL连接的有效数字签名证书,则无需对此问题进行任何操作。我曾经遇到过同样的问题,并尝试了您提到的所有情况,但都失败了。最后发现这是证书的问题。我们在Web服务中使用了自签名证书。后来当我们购买了有效证书时,问题得到了解决,不需要进行任何编码或清单更改。 - user3279683
在此,您需要获取有效的 SSL 证书并适当地包含它。自签名证书可能无效或被标记为无效。 - anthonyhumphreys
有没有解决这个问题的方法?在我的情况下,API 不在我的控制范围内,也没有有效的证书,我能否在应用程序中提供本地证书? - Eldho
显示剩余3条评论
2个回答

1

自签名证书无法使用,并且不会自动获取数据,需要手动干预。


0

首先,在通过移动IE测试SSL连接时,从我的测试中看出,通过按继续按钮,您正在向IE添加异常,而不是安装任何证书或使该异常适用于整个手机。

其次,在WP8上使用自签名证书似乎受到严重限制,因为任何不使用内置根CA的证书链都会在您的代码中生成验证失败的证书。请参阅MSDN博客条目http://blogs.msdn.com/b/davidhardin/archive/2010/12/30/wp7-and-self-signed-ssl-certificates.aspx

他在其中声明:“您可以使用Microsoft Certificate Services实现自己的证书颁发机构,但仍需要来自手机证书颁发机构之一的证书,以将您的证书颁发机构链接到其中。”

我看到的唯一“解决方案”是有效地忽略所有证书警告-这根本不是解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接