用七牛云作图床并配置 SSL

背景 一年前我写过《使用 CloudFlare/百度云加速做免费SSL》,里面提到了:因为 Chrome 的最新安全限制, https 站点无法正常加载 http 的图片和其他静态资源,这使得我不得不给我的图床加上 SSL。 前几天发现我的博客里的图片无法被正常加载,观察控制台后发现 图床的 SSL 证书出问题了。到百度云加速控制台看,才发现上次申请的一年 SSL 证书已经到期了,并且需要付费才能继续申请证书。好吧,白嫖的快乐没有了。 那就不用百度云加速了,SSL CDN 也用七牛云的吧。 七牛云 前提:你需要有一个已备案的域名,否则只能使用七牛的临时测试域名,是有有效期的 免费套餐 从 2016 年白嫖七牛云存储至今,本文就当做给七牛打回广告吧。 先说结论: 如果你只用 http 访问文件,每个月不超过 10G 流量的话,那么用七牛云相当于白嫖,一分钱都不用花 如果需要使用 https 则需要花费一些费用(0.28 元/GB),一般博客小站,每个月最多不超过 1 块钱吧。等过段时间,我有了一定数据再回来更新这个数值。 对于个人用户来说,有 10G 的免费存储,每个月 10G 的流量已经非常足够了。具体的资费可以参看 官网价格 。PS. 从价格表会看到 外网流出流量 会被收费,这点不用担心,我专门查了下官方说明: 如果使用了七牛测试域名或者融合 CDN 域名访问资源,是不会计算外网流出流量的 也就是说,你绑定一个域名回源到七牛云的对象存储,每个月不超过 10G 则不收费。 创建一个 bucket 在七牛云对象存储 管理后台,创建一个bucket: 存储区域选国内的都行;访问控制设置为公开,毕竟我们要将其用作图床 绑定域名 创建成功后,会提示你绑定一个域名。该域名将作为 CDN 域名,通过该域名访问你的文件时,会尝试在 CDN 节点找缓存;缓存未命中再回源到你上边创建的 bucket。 我们添加一个域名,该域名必须是经过备案的。 通信协议:如果你不需要 HTTPS,那么选择 HTTP 就足够了 ...

2021-11-14 · 1 分钟 · 152 字

使用CloudFlare/百度云加速做免费SSL

2021-11-14更新:百度云加速过期了,CDN 也直接用七牛云的吧。有兴趣的朋友可以看这篇文章《用七牛云作图床并配置 SSL》 2020-11-03更新:已将cdn部署到百度云加速服务。国内使用Cloudflare确实不行,最近看到百度云加速有免费套餐,个人博客来说完全够用了。步骤不复杂,就不详细描述了。步骤大概为: 需要域名备案 在百度云加速实名认证 添加网站时,选择CNAME接入方式。(官方推荐的是NS方式,这样可以全称托管,但我目前只希望托管我的cdn域名) 证书管理-证书申请可以免费申请ssl证书 安全功能-HTTPS,选择半程加密。这样源站可以不支持SSL 以下为原文: 注意一下,由于众所周知的原因,在国内访问CloudFlare会很慢,我只是用于个人博客的部分图片使用,所以容忍度会比较高。有高要求的同学,不建议在国内使用。 对于经常科学上网,尤其是自己搭建科学上网的同学来说,CloudFlare一定再熟悉不过了。经常有同学将它套在国外机子上,用来加速流量。因为CF本身就是一个CDN服务,可以用于加速各种服务。 今天我选择用它做我图床的cdn服务。 背景 起因是这样的,这两天发现我博客的背景图加载不出来了,查看网络请求后发现我的图床域名https://cdn.foamzou.com/legacy被强制使用https发起请求了。这是因为我的html页面是https的,chrome很不喜欢https页面包含了http请求,认为这很不安全。所以它强制在发起请求的时候在http header加了upgrade-insecure-requests: 1。该头部会告知服务端,客户端支持将http升级为https。在接下来的http请求中,浏览器会将其替换为https再发起请求。(但我将upgrade-insecure-requests: 1改为0,还是会替换为https,不确定是不是该头部的原因,也可能是chrome最近自升级加的特性。其它浏览器例如Safari就正常访问) Ok,已经确定是chrome新版本的特性,将混合内容(mixed content)的http改写为https了。在2019年10月份,google就通过博客发布了chrome关于内容安全的更新时间表: - v79 [2019年12月发布到稳定渠道]:将mixed的脚本文件、iframe升级到https - v80 [2020年1月发布到试用渠道]:将mixed的音视频文件升级到https。虽然允许mixed的图片文件加载,但该站点会在地址栏被标记不安全 - v81 [2020年2月发布到试用渠道]:将mixed的图片文件升级到https 按计划是2月份发布到early release渠道,估计也是前段时间才被更新到稳定渠道,然后自更新导致我的图片挂掉 问题来了,我的图床域名并不支持https,导致ssl握手失败,我的图裂开了!如果要支持的话,我需要在七牛支付一定的费用(https流量没有免费额度),而且需要配置一个ssl证书,可以购买(几千块一年,好贵),也可以上传自定义证书(也略麻烦)。 突然想起我可以把CF套在域名上,CF有免费套餐,一般的需求足够了,ssl证书还不用自己配置。 开干 说干就干,打开官网,没有账号的话注册一个。 添加站点 注意,这里只能填写根域,不支持单独加速子域名。但我只想加速某个子域名怎么办?没事,后面步骤可以配置。 添加站点 选择套餐 选择免费的就可以啦 选择套餐 修改代理状态 选择完套餐后,CF会将你域名的解析记录带出来,如下图 dns记录 在代理状态那列点击小图标可以切换状态。现在有两个状态可以切换,已代理和仅限DNS。注意,对于你不希望走CF的域名,请设置为仅限DNS,这样CF只会帮你将域名解析到你的源ip,而代理则解析到CDN节点,再帮你回源。 由于CF在国内的网络情况并没有阿里云这些本地的厂商好,所以博客域名我没有走CF,只是代理了file.zoufeng.net 好,点击继续。 修改域名的DNS服务器 这一步需要到你的域名管理台(在哪买的域名就去哪),将原来的DNS服务器删除,换成CF自己的。完成之后点击蓝色按钮。 设置ssl 点击SSL/TLS按钮,将选项修改为灵活,这样CF节点支持ssl,而源服务器不需要ssl。完全的话,源服务器就需要支持ssl了。我的七牛图床域名不支持ssl,所以选择了灵活。这也是本篇文章的最开始的目的。 等待生效 等吧。修改DNS服务器那一步耗费的时间可能会长一些。你可以通过ping命令检查是否已经解析到CF的ip了。 其它 你可能看到上一张图有很多菜单:缓存、防火墙、worker等。CF挺多功能的,有兴趣的话,注册一个玩玩吧。worker就是serverless那东西,类似AWS CloudFront的lambda@edge

2020-09-30 · 1 分钟 · 56 字