您使用的 SSL 证书可能不是由受信任的 iOS/Safari 根证书颁发机构(或 CA)颁发的。
如今的 SSL 证书最有可能由“中间 CA”颁发。
也就是说,根 CA 信任的 CA。
但是,您的浏览器/操作系统对此一无所知。
它只知道您的 SSL 证书是由它不信任的 CA 颁发的。
因此,您必须让 iOS/Safari 知道您的中间 CA 实际上受到 Safari 信任的根 CA 的信任。
因此,您需要从 CA 下载中间证书,并在您的服务器上安装该中间证书,以便 Safari/iOS 播放您的 HTTPS 视频(HTTPS = 通过 SSL 的 HTTP)。
如果您的 CA 是受根 CA 信任的 CA 信任的 CA,您还需要安装第二个中间证书。一般来说,如果你是 CA 的信任级别被链接了 N 次,你需要将所有 N 个证书放在你的服务器上。
为了链接您的证书:
cat certfile1 certfile2 ... certfileN > www.YOUR_DOMAIN.com.chained.crt
例如
cat www.example.com.crt intermediary.crt > www.example.com.chained.crt
然后你把链式证书放到虚拟服务器的配置文件中(这个是给 nginx 的):
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.chained.crt;
ssl_certificate_key www.example.com.key;
...
}
以防万一您还年轻天真:
SSL 证书链顺序很重要
(对于一些非常非常挑剔的 SSL 实现)
顺序应该是:
<your certificate>
<your cert signer>
<signer for your cert signer>
<etc>