(1)如果是购买证书以后自定义上传的情况,需要特别注意 SSL 证书根据其适 用范围可以分为:通配符域名、单个域名和多个域名。根据其名称即可查看购买的 证书分别适用于主域名下某个级别的全部子域名、单个域名或者多个域名。用户是 需要保证购买的证书必须适用于加速域名后续才可以添加在 CDN 中生效。如下图所 示的即是添加的 SSL 证书(适用于 www 域名)与 CDN 加速域名(video 的子域名) 是不相匹配的,因此会抛出 NET::ERR_CERT_COMMON_NAME_INVALID 的 错误。 image.png
(2)CA 机构提供的证书为了兼容性可能会提供多种形式的证书,CDN 支持的证 书仅有 PEM 格式,并且私钥需要 RSA 格式。如果客户获取得到的是其他格式的证 书是需要转换后然后提交到 CDN 服务中的,常见格式切换格式请参考:CDN 证书格 式说明,而其中的私钥文件如果是 -----BEGIN PRIVATE KEY-----, ----- END PRIVATE KEY----- 样式的话是需要通过如下命令转换成 RSA 格式: openssl rsa -in old_server_key.pem -out new_server_key.pem
(3)CDN 是不支持设置密码的私钥。如图 3 所示即是经过加密的私钥,这类私 钥文件是需要经过解密后才可以正常使用,因此 CDN 是无法正常使用的。 image.png
(4)证书链需要补全中间证书。对于中级 CA 机构提供的证书,那么拿到的证书 将包括多份证书,而 CDN 需要添加的是包括中间证书的完整证书链,拼接规则为: 服务器证书放第一份,中间证书放第二份,中间不要有空行。另外有一些中间证书 CA 机构提供了不同的服务器使用的证书,由于 CDN 是基于 Tengine 提供服务的, 因此用户是需要使用 Nginx 对应的证书到视频中心的。
(5)CDN 的 HTTPS 技术是基于 SNI 技术实现的。SNI 技术主要是用来在同一 台服务器上配置多个证书的需求,而 SNI 是需要客户端发送请求的时候带有 SNI 的 信息以标识是哪个域名的 SSL 请求,因此 SNI 技术对客户端有一定的要求,部分低 版本系统中的低版本浏览器不满足该要求。
SNI 技术对于客户端的限制详细请参考: SNI 对客户端浏览器限制。https://www.ssllabs.com/ssltest/clients.html