【发布时间】:2012-02-20 17:26:16
【问题描述】:
我编写了一个简单的 HTML 代码来使用 iPhone 上的 HTML5 音频标签播放音频文件。
<audio controls="controls" autoplay="autoplay">
<source src="http://192.168.1.130/ab.wav>" type="audio/wav" preload="auto"/>
Your browser does not support the audio element.
</audio>
上面的代码在 safari 上运行得非常好。当我将源 URL 从 HTTP 更改为 HTTPS 时,问题就出现了。
我开始收到“无法播放此电影”错误消息。
我使用的证书链如下:
VeriSign 试用安全服务器根 CA - G2 -> VeriSign 试用安全服务器 CA - G2 -> ucbu-aricent-vm200
默认情况下,根 CA(上)的证书在 Safari 中不可用。
所以我已将证书颁发机构(根证书和中间证书)的证书附加到电子邮件中,然后通过单击电子邮件中的附件将它们添加到 iPhone 中。
但当 Safari 创建 TCP 会话以传输 WAV 文件时,我仍然看到 SSL 握手失败。
注意:当创建 TCP 会话以从服务器获取 HTML 文件时,SSL 握手会成功。我对比了 HTML 和 WAV 文件场景的 SSL 握手的网络数据包,两者是相同的。
【问题讨论】:
-
您有没有考虑过,用于音频/视频播放的 HTTP/SSL 可能不是由 Safari 完成的(只是假设)
-
为什么不使用您知道操作系统接受的证书?他们在 GoDaddy 上的售价为 12 美元......
-
经过一番努力,我能够在 Iphone 上通过 HTTPS 解决音频播放问题。此外,我已经在 iPad 上对其进行了测试,并且也可以使用它。似乎需要以下事情才能使其工作。 1) 由 Iphone 上受信任的证书颁发机构签署的 Tomcat Web 服务器证书。我们已经使用 StartCom CA 授权来生成证书。 2) 在音频标签中,我们必须使用主机名而不是 IP 地址。似乎 Safari 正在将证书 CN 与 URL 进行比较以确认盒子的身份。
-
您能否确认这在 Windows Phone 8 中是否也能正常工作?我一直在努力让它工作,但最后我必须设计自己的音频/视频播放器来通过 HTTPS 源播放媒体文件。
标签: iphone ios html https mobile-safari