(转载)
最近逛 github 时发现 readme.md 中的图片都不显示了,F12 打开控制台一看是一堆的 Failed to load resource: net::ERR_CERT_COMMON_NAME_INVALID 报错。有大佬认为 ERR_CERT_COMMON_NAME_INVALID 就是用一个错误的域名访问了某个节点的 https 资源。导致这个错误的原因,基本是这几点:dns 污染;host 设置错误;官方更新了 dns,但是 dns 缓存没有被更新,导致错误解析。
ERROR

解决思路

不管属于哪个原因引起的,根据hosts最高优先级原则,主要思路就是使用本地hosts文件对网站进行域名解析,一般的DNS问题都可以通过修改hosts文件来解决,github的CDN域名被污染问题也不例外,同样可以通过修改hosts文件解决,将域名解析直接指向IP地址来绕过DNS的解析,以此解决污染问题。
error2

获取真实IP

例如,不被显示的图片URL为 https://avatars2.githubusercontent.com/u/1?s=460&v=4,打开 IPAddress.com 这个网站,输入域名 avatars2.githubusercontent.com 进行查询。得到IP地址为:151.101.184.133,如果有其他挂掉的图片一样使用此方法进行一一映射即可。

修改HOSTS文件

各系统对应的hots文件路径:

Windows系统: C:\Windows\System32\drivers\etc\hosts
Linux系统:/etc/hosts
Android(安卓)系统: /system/etc/hosts
Mac(苹果电脑)系统: /etc/hosts
iPhone(iOS)系统:/etc/hosts

修改host文件在文件末尾添加:

# GitHub
192.30.253.112    github.com
192.30.253.119    gist.github.com
185.199.108.153    assets-cdn.github.com
199.232.28.133    raw.githubusercontent.com
199.232.68.133    gist.githubusercontent.com
199.232.68.133    cloud.githubusercontent.com
199.232.68.133    camo.githubusercontent.com
199.232.28.133    avatars0.githubusercontent.com
199.232.28.133    avatars1.githubusercontent.com
199.232.28.133    avatars2.githubusercontent.com
199.232.68.133    avatars3.githubusercontent.com
199.232.28.133    avatars4.githubusercontent.com
199.232.28.133    avatars5.githubusercontent.com
199.232.28.133    avatars6.githubusercontent.com
199.232.28.133    avatars7.githubusercontent.com
199.232.68.133    avatars8.githubusercontent.com

hosts 文件可能需要经常维护,图片如果再次挂掉,就需要及时更新其中的 IP 地址。

Last modification:June 27, 2020
如果觉得我的文章对你有用,请随意赞赏