HTTPS下插入B站视频

Bilibili May 8, 2016

起源

刚才在转载BBleae的插入QQ小尾巴的指导视频的时候,发现用https会出现证书CN(常用名,COMMON NAME)不符导致没法载入。因为我是全站HTTPS的,也没法插入HTTP的不然会出现MIX CONTENTS一样没法载入。

问题分析

点击B站分享的时候,会给这么一段HTML代码给你:

<embed height="452" width="544" quality="high" allowfullscreen="true" type="application/x-shockwave-flash" src="http://share.acg.tv/flash.swf" flashvars="aid=3128485&page=1" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed>

很明显这玩意不能用,因为它的源是http://share.acg.tv/flash.swf但是我是全站加密的,所以会出现MIX CONTENTS。当我用https://share.acg.tv/flash.swf的时候,发现这东西的证书CN并不是share.acg.tv或者*.acg.tv所以出现COMMON NAME MISMATCH。

解决方法

很简单,只需要把http://share.acg.tv/flash.swf替换为https://static-s.bilibili.com/miniloader.swf问题就解决了。static-s.bilibili.com这域名的CN是正常的,也支持HTTPS。

于是会变成这样:

<embed height="452" width="544" quality="high" allowfullscreen="true" type="application/x-shockwave-flash" src="https://static-s.bilibili.com/miniloader.swf" flashvars="aid=3128485&page=1" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed>

假如你的程序支持embed自动转码(譬如Wordpress 3.5版本后),那就更简单了。只需要这么一段代码即可:

<embed height="452" width="544" src="https://static-s.bilibili.com/miniloader.swf?aid=3128485"></embed>

效果演示

这是我很久之前弄得一个视频(捂脸)

还有另外一个示范
https://blog.ixnet.work/2016/05/07/custom-qq-tails/

参考文章

标签

Howard Liu

在读大学生,平常使用战争雷霆提高血压和听网课使自己更快入睡。