使用HTTPS在IPad Safari上播放HTML5视频

Mik*_*ard 7 safari https html5 ipad

我正在尝试使用HTML 5视频元素在iPad(Safari浏览器)上播放.mp4视频.使用HTTP一切正常.但是,使用HTTPS访问时,视频不会加载(或播放).如果我从桌面Chrome浏览器访问同一网站,我可以使用HTTPS加载和播放视频.网上有其他关于Quicktime和HTTPS无法在iPad上运行的提示.这是同一个问题吗?

Ste*_*ger 2

您使用的 SSL 证书可能不是由 iOS/Safari 受信任的根证书颁发机构(或 CA)颁发的。

\n\n

现在的 SSL 证书很可能是由“中间 CA”颁发的。
\n即,受根 CA 信任的 CA。
\n但是,您的浏览器/操作系统对此一无所知。
\n它只知道您的 SSL 证书是由它不信任的 CA 颁发的。

\n\n

所以你必须让iOS/Safari知道你的中间CA实际上是被Safari信任的根CA信任的。

\n\n

因此,您需要从 CA 下载中间证书,并将该中间证书安装在您的服务器上,以便 Safari/iOS 播放您的 HTTPS 视频(HTTPS = 通过 SSL 的 HTTP)。

\n\n

如果您的 CA 是受根 CA 信任的 CA 信任的 CA,则您还需要安装第二个中间证书。一般来说,如果你的CA的信任级别被链接了N次,你需要把所有N个证书放在你的服务器上。

\n\n

为了链接您的证书:

\n\n
cat certfile1 certfile2 ... certfileN > www.YOUR_DOMAIN.com.chained.crt\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如

\n\n
cat www.example.com.crt intermediary.crt > www.example.com.chained.crt\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后将链接的证书放入虚拟服务器的配置文件中(这是针对 nginx 的):

\n\n
server {\n    listen              443 ssl;\n    server_name         www.example.com;\n    ssl_certificate     www.example.com.chained.crt;\n    ssl_certificate_key www.example.com.key;\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

以防万一您还年轻并且 na\xc3\xafve:
\n SSL 证书链顺序很重要
\n(对于一些非常非常挑剔的 SSL 实现)

\n\n

顺序应该是:

\n\n
<your certificate>\n<your cert signer>\n<signer for your cert signer>\n<etc>\n
Run Code Online (Sandbox Code Playgroud)\n