在IP上工作但不在URL上的证书

时间:2012-11-27 16:31:05

标签: windows-phone-7 ssl-certificate ie-mobile

我在使用IEMobile 9(WP 7.5)访问我的网站(在https上)时遇到问题。

它说证书有问题,好像它无效。一切都适用于我测试的任何其他浏览器或平台(android(几个手机和带有股票浏览器的firexy选项卡,firefox,opera,dolphin),iOS(带有safari和chrome的iphone和ipad),带有symbian的老诺基亚,windows 7, linux和mac)。

为了尝试解决此问题,我将证书(.cer)保存在服务器上,并通过手机浏览器进行访问。它总是抱怨,除非我通过服务器IP(192.168.xx.xx)访问它。那时它(说它)正确安装了证书。如果那时我尝试访问index.html仍然使用IP所有工作正常,它不会抱怨证书。但是,如果我尝试使用实际的URL(blah.myblah.com)访问索引,它会再次抱怨证书,就像它没有安装一样!

这不是DNS的问题,因为它已经启动并提供正确的IP,并且手机已正确设置为使用它。

证书由geotrust / rapidssl签署,用于* .myblah.com。

2 个答案:

答案 0 :(得分:1)

这是正常的。证书颁发给特定主机+域名。基本上,SSL的验证代码将具有类似

的内容
if (requested host name != certificate issued hostname) {
    issue security alert
}

所以你正在做

if (192.168.xx.xx != example.com) {

并获得安全警告。

答案 1 :(得分:0)

我遇到了与某些HTTP over TLS实现如何查找SubjectAltName(SAN)相关的证书问题。 RFC2818指出,如果主机名是DNS条目,则实现必须根据subjectAltName扩展数组检查主机名,以查找与主机匹配的DNS条目。如果没有使用subjectAltName CommonName。 如果主机名是IP,则证书必须包含与IP匹配的subjectAltName IP条目。 另请注意,较新的RFC6125不鼓励使用通配符证书,因此MAYBE windows phone已经强制执行此操作,但我可能错了。

我的第一步是检查证书的SAN部分,并确保它的DNS条目与您网站的主机相匹配。