HTTPS下插入B站视频
起源
刚才在转载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/