图床照片无法显示(SSL问题)
前言
打开网站显示如下,所有图片都无法加载,但是js脚本和css都能正常渲染,一开始以为是图床出问题了,在阿里云的OSS打开图片也无法显示,是一个加载错误的图标。后面才想起可能是证书出问题了,因为浏览器打开网站显示连接不安全,而OSS和网站都配置了SSL证书,之前WordPress网站配置证书的时候有效期只有90天,转到阿里云申请的免费证书有效期也只有90天。
更新证书后网站连接才显示正常,否则会有一个红色的
×
阿里云更换SSL证书
申请SSL证书
在阿里云的数字证书管理服务申请证书,进入个人测试证书
填写使用SSL证书的域名,这里需要注意一下,图床使用的域名是statics.liuhengfeng.xyz,之前申请证书的时候我没注意,填写的是static.liuhengfeng.xyz,少了一个s,导致部署证书时无法匹配到已有域名从而导致部署失败,我使用了两张证书,一张给statics.liuhengfeng.xyz,另一张给liuhengfeng.xyz和www.liuhengfeng.xyz
申请成功之后如下图所示
部署证书
申请完成后,选择右侧的部署,把证书部署到相应的云产品上,我两个证书一个部署到对象存储OSS上,一个部署到CDN上
部署之后可以在CDN控制台看到证书的相关信息,既可以自动匹配证书,也可以自定义上传证书
下载证书需要在SSL证书管理页面点击右边的更多,然后选择下载,选择Nginx类型,然后手动上传到相应的服务上即可
CDN配置(不完全正确)
CDN具体配置信息如下,现在使用www.liuhengfeng.xyz访问网站能使用CDN进行加速,访问图片时也能使用CDN缓存,但是如果使用liuhengfeng.xyz访问网站能进行加速吗?
CDN配置正确流程
1.进入github pages仓库(2819685584.github.io),点击设置进入github pages,填写自定义域名为www.liuhengfeng.xyz,之前用的是根域名liuhengfeng.xyz,但是现在还是带个www前缀吧
把hexo源码的G:\hexo\source\CNAME内容只保留www.liuhengfeng.xyz,去掉了liuhengfeng.xyz,原来是这样的,虽然不知道这样有没有必要
1 | # 更新前 |
2.去阿里云的云解析DNS里面,把之前的所有CNAME、A、AAAA记录都删掉,只保留一些基本的TXT记录,如果不删档这些记录,后面会和配置CDN的源站发生冲突
3.配置CDN,设置加速域名为www.liuhengfeng.xyz,源站类型选择IP,然后添加上GitHub Pages的IP地址(它会识别www.liuhengfeng.xyz才是我的GitHub Pages,才会消耗流量)
4.设置回源配置
5.在云解析DNS添加CDN的CNAME,我这里把www和@的CNAME都添加为CDN的CNAME,也就是说,无论我通过www.liuhengfeng.xyz还是liuhengfeng.xyz来访问网站,都能使用阿里云的CDN加速,这样就不用纠结两个URL使用其中一个没有CDN加速效果了
6.验证效果,通过nslookup命令查看,可以看到域名别名变为了阿里云的CDN域名
在搜索了中输入
www.liuhengfeng.xyz并不会显示www,但是实际上是通过www.liuhengfeng.xzy来访问网站的,把地址复制下来发现www是包含在URL中的,就行输入www.baidu.com,实际显示的是baidu.com
CDN知识点
源站地址 表示 GitHub 的服务器IP地址,而 回源HOST 表示要去源站地址找哪个站点,一台服务器(一个IP)可以有很多个站点(网站),而我们在 Github 上绑定了自定义域名,用自定义的域名就可以在 Github 的服务器上找到我们的站点了,所以默认回源HOST地址填写为www.liuhengfeng.xyz
回源host
回源host也可以说是回源域名,比如源站(服务器)拥有多个站点:bbs.yeruchimei.top、blog.yeruchimei.top、api.yeruchimei.top,那回源host就是指定到哪个站点上获取资源,具体详情参考以下几个示例。
示例一:
源站类型:自有源
源站地址:115.115.115.115
回源host:blog.yeruchimei.top
当CDN回源时,会到115.115.115.115这台主机上的blog.yeruchimei.top站点拉取资源。
示例二:
源站类型:自有源
源站地址:115.115.115.115
回源host:api.yeruchimei.top
当CDN回源时,会到115.115.115.115这台主机上的api.yeruchimei.top站点拉取资源。
注意:如果填写的回源host在源站上不存在时,则会到源站上的默认站点拉取资源。
建议:当源站拥有多个站点时,一定要选择正确的域名,否则CDN拉取到的资源可能不是你想要的。
加速域名
加速域名是接入服务商cdn的域名,例如使用www.yeruchimei.top域名接入CDN,那么加速域名就是www.yeruchimei.top
源站地址
顾名思义,就是用户的源站主机地址,腾讯云的源站地址有两种类型:自有源和cos源。
当选择自有源时,源站地址也有两种类型:域名(一个)和IP地址(可多个),并且都支持端口。
示例一:
源站类型:自有源
源站地址:115.115.115.115
示例二:
源站类型:自有源
源站地址:115.115.115.115:8080
示例三:
源站类型:自有源
源站地址:source.yeruchimei.top
示例四:
源站类型:自有源
源站地址:source.yeruchimei.top:8080
源站地址填写为域名最大的好处是,当你的源站拥有多个运营商的IP,例如source.yeruchimei.top有三个A记录,分别是100.100.100.100(电信)、101.101.101.101(联通)、102.102.102.102(移动),那么当CDN回源时,会根据用户的来源运营商选择对应的A记录。当访问者为电信用户,回源时则会选择100.100.100.100(电信)来回源,这样就可以避免跨运营商回源,造成回源延迟等问题。
注意:如果源站地址填写为域名时,此域名的作用仅仅是用于DNS解析,例如source.yeruchimei.top对应的A记录为100.100.100.100,那最终源站地址则是100.100.100.100。
建议:能选择源站地址为域名最好是选择为域名。
参考文章
总结
- 学习了如何为GitHub Pages配置CDN加速
- 加深了对DNS知识的理解
- 要记得及时更换SSL证书(90天),不知道阿里云的证书能不能延期,之前宝塔提供的证书在到达有效期之前是能够自行延长有效时间的
- 阿里云每年提供20张免费SSL个人证书,超过了就要付费了,一张有效90天,每年都会更新证书数量(不知道是不是每年一月一日更新),我应该用不到这么多,毕竟我只使用三个域名(statics、www、@)






















