我正在使用“WebRequest”/“WebResponse”框架类在 silverlight 中执行 https web 请求。 问题是:我向一个网址发出请求,例如:https://12.34.56.78 我收到了一个 versign 签名的证书,该证书的主题是一个域名,例如:www.mydomain.com。 因此,这会导致远程证书不匹配错误。
第一个问题:我能否以某种方式接受无效证书并获取 WebBresponse 内容? (即使涉及使用其他库,我也愿意接受)
其他详细信息:(对于那些对为什么我需要这个场景感兴趣的人)
我正在尝试授予客户端访问部署在测试服务器上的 silverlight 应用程序的权限。
客户端访问 silverlight 应用程序:www.mydomain.com/app
然后我向:https://xx.mydomain.com 提出一些休息请求
问题是我不想在 https://xx.mydomain.com 上做请求,因为那是在我们的生产服务器上。出于这个原因,我使用 https://12.34.56.78而不是 https://xx.mydomain.com .
客户端有一些防火墙/代理,如果我简单地更改他的主机文件并映射 https://xx.mydomain.com到 12.34.56.78,Web 请求不会解析到映射的 IP。 我这样说是因为如果我尝试在他的网络上 webrequests 失败,在我的网络上我可以毫无问题地使用主机更改。
更新:通过将测试版本部署到替代版本来解决问题:https://yy.domain.com并允许用户为测试目的进行配置,我请求的基本 url 是:https://yy.domain.com .
使用在主题或替代主题中包含 IP 的证书也可能有效,但需要花费一些钱才能由经过认证的提供商颁发,而且效果不会很好,因为 IP 可能会发生变化。
最佳答案
经过更多研究后,Microsoft 似乎不会很快添加此功能,除非存在非测试/调试用途的场景。 请参阅:http://connect.microsoft.com/VisualStudio/feedback/details/368047/add-system-net-servicepointmanager-servercertificatevalidationcallback-property
关于silverlight 接受无效证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952360/