问题
最近写博文的时候发现图片都不显示了:
博文用到的图片一直是用github做图床,果然github里的图片也不显示了:
报错:Failed to load resource: net::ERR_CERT_COMMON_NAME_INVALID
这样很影响博文内容的理解啊,在网上搜了一下找到解决方案,记录一下。
以下解放方法参照博主Antrn的这篇博文:【最新】解决github图片不显示的问题。
问题根源
博主john-zeng这样解释道:
实际上,可以认为,ERR_CERT_COMMON_NAME_INVALID就是用一个错误的域名访问了某个节点的https资源。导致这个错误的原因,基本是:
① dns污染
② host设置错误
③ 官方更新了dns,但是dns缓存没有被更新,导致错误解析。
解决步骤
主要思路就是使用本地hosts
文件对网站进行域名解析,一般的DNS问题都可以通过修改hosts文件来解决,github的CDN域名被污染问题也不例外,同样可以通过修改hosts文件解决,将域名解析直接指向IP地址来绕过DNS的解析,以此解决污染问题。
找到URL
打开github任意带有挂掉图片的网页,使用元素选择器
(Ctrl+Shift+C)放在显示不了的图片上,或者在挂掉的图片上右键-检查元素,定位到该图片的标签,那么你得到了它的URL,叫做src
属性。
比如:
或者直接在Console
栏右键保存出错日志:
打开日志可得到图片链接:
复制该链接:
https://raw.githubusercontent.com/Amyoyoyo/media/master/blog/dp01backpack.gif
获取IP地址
得到上述网址以后打开IPAddress.com这个网站,在搜索框输入它的域名,就是https://到com那一部分,俗称二级域名:raw.githubusercontent.com
回车,得到该域名的信息和IP地址:
可以看出IP是:199.232.4.133
,并且是2019.10.18最后更新的,那么我们就可以使这个IP和域名映射起来。
(其他如果有其他不能显示的图片一样使用此方法进行一一映射即可。)
修改hosts
具体怎么映射呢?修改hosts文件!!!若使用的是windows系统,以管理员权限打开hosts文件:C:\Windows\System32\drivers\etc\hosts
在文件末尾添加:
# GitHub Start
192.30.253.112 github.com
199.232.4.133 raw.githubusercontent.com
# GitHub End
PS:另外要注意的一点就是,如果图片再次挂掉,只需要及时更新IP就行啦