<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Cloudflare on Foam 的博客</title>
    <link>https://blog.foamzou.com/tags/cloudflare/</link>
    <description>Recent content in Cloudflare on Foam 的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 30 Sep 2020 20:37:41 +0800</lastBuildDate>
    <atom:link href="https://blog.foamzou.com/tags/cloudflare/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用CloudFlare/百度云加速做免费SSL</title>
      <link>https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/</link>
      <pubDate>Wed, 30 Sep 2020 20:37:41 +0800</pubDate>
      <guid>https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/</guid>
      <description>&lt;p&gt;2021-11-14更新：百度云加速过期了，CDN 也直接用七牛云的吧。有兴趣的朋友可以看这篇文章《&lt;a href=&#34;https://blog.foamzou.com/posts/image-hosted-service-qiniu/&#34;&gt;用七牛云作图床并配置 SSL&lt;/a&gt;》&lt;/p&gt;
&lt;p&gt;2020-11-03更新：已将cdn部署到&lt;a href=&#34;https://su.baidu.com/&#34;&gt;百度云加速服务&lt;/a&gt;。国内使用Cloudflare确实不行，最近看到百度云加速有免费套餐，个人博客来说完全够用了。步骤不复杂，就不详细描述了。步骤大概为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需要域名备案&lt;/li&gt;
&lt;li&gt;在百度云加速实名认证&lt;/li&gt;
&lt;li&gt;添加网站时，选择CNAME接入方式。（官方推荐的是NS方式，这样可以全称托管，但我目前只希望托管我的cdn域名）&lt;/li&gt;
&lt;li&gt;证书管理-证书申请可以免费申请ssl证书&lt;/li&gt;
&lt;li&gt;安全功能-HTTPS，选择半程加密。这样源站可以不支持SSL&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;以下为原文：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意一下，由于众所周知的原因，在国内访问CloudFlare会很慢，我只是用于个人博客的部分图片使用，所以容忍度会比较高。&lt;strong&gt;有高要求的同学，不建议在国内使用。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对于经常科学上网，尤其是自己搭建科学上网的同学来说，CloudFlare一定再熟悉不过了。经常有同学将它套在国外机子上，用来加速流量。因为CF本身就是一个CDN服务，可以用于加速各种服务。&lt;/p&gt;
&lt;p&gt;今天我选择用它做我图床的cdn服务。&lt;/p&gt;
&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;
&lt;p&gt;起因是这样的，这两天发现我博客的背景图加载不出来了，查看网络请求后发现我的图床域名&lt;code&gt;https://cdn.foamzou.com/legacy&lt;/code&gt;被强制使用&lt;code&gt;https&lt;/code&gt;发起请求了。这是因为我的html页面是https的，chrome很不喜欢https页面包含了http请求，认为这很不安全。所以它强制在发起请求的时候在http header加了&lt;code&gt;upgrade-insecure-requests: 1&lt;/code&gt;。该头部会告知服务端，客户端支持将http升级为https。在接下来的http请求中，浏览器会将其替换为https再发起请求。(但我将&lt;code&gt;upgrade-insecure-requests: 1&lt;/code&gt;改为0，还是会替换为https，不确定是不是该头部的原因，也可能是chrome最近自升级加的特性。其它浏览器例如Safari就正常访问)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ok，已经确定是chrome新版本的特性，将混合内容（mixed content）的http改写为https了。在2019年10月份，google就通过博客发布了chrome关于内容安全的更新时间表：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- v79 [2019年12月发布到稳定渠道]：将mixed的脚本文件、iframe升级到https
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- v80 [2020年1月发布到试用渠道]：将mixed的音视频文件升级到https。虽然允许mixed的图片文件加载，但该站点会在地址栏被标记不安全
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- v81 [2020年2月发布到试用渠道]：将mixed的图片文件升级到https
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;按计划是2月份发布到early release渠道，估计也是前段时间才被更新到稳定渠道，然后自更新导致我的图片挂掉
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;问题来了，我的图床域名并不支持https，导致ssl握手失败，我的图裂开了！如果要支持的话，我需要在七牛支付一定的费用（https流量没有免费额度），而且需要配置一个ssl证书，可以购买（几千块一年，好贵），也可以上传自定义证书（也略麻烦）。&lt;/p&gt;
&lt;p&gt;突然想起我可以把CF套在域名上，CF有免费套餐，一般的需求足够了，ssl证书还不用自己配置。&lt;/p&gt;
&lt;h2 id=&#34;开干&#34;&gt;开干&lt;/h2&gt;
&lt;p&gt;说干就干，打开&lt;a href=&#34;https://dash.cloudflare.com/&#34;&gt;官网&lt;/a&gt;，没有账号的话注册一个。&lt;/p&gt;
&lt;h3 id=&#34;添加站点&#34;&gt;添加站点&lt;/h3&gt;
&lt;p&gt;注意，这里只能填写根域，不支持单独加速子域名。但我只想加速某个子域名怎么办？没事，后面步骤可以配置。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/image.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;添加站点&lt;/p&gt;
&lt;h3 id=&#34;选择套餐&#34;&gt;选择套餐&lt;/h3&gt;
&lt;p&gt;选择免费的就可以啦&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/image-1-1024x780.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;选择套餐&lt;/p&gt;
&lt;h3 id=&#34;修改代理状态&#34;&gt;修改代理状态&lt;/h3&gt;
&lt;p&gt;选择完套餐后，CF会将你域名的解析记录带出来，如下图&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/image-2-1024x501.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;dns记录&lt;/p&gt;
&lt;p&gt;在代理状态那列点击小图标可以切换状态。现在有两个状态可以切换，&lt;code&gt;已代理&lt;/code&gt;和&lt;code&gt;仅限DNS&lt;/code&gt;。注意，对于你不希望走CF的域名，请设置为&lt;code&gt;仅限DNS&lt;/code&gt;，这样CF只会帮你将域名解析到你的源ip，而代理则解析到CDN节点，再帮你回源。&lt;/p&gt;
&lt;p&gt;由于CF在国内的网络情况并没有阿里云这些本地的厂商好，所以博客域名我没有走CF，只是代理了&lt;code&gt;file.zoufeng.net&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;好，点击继续。&lt;/p&gt;
&lt;h3 id=&#34;修改域名的dns服务器&#34;&gt;修改域名的DNS服务器&lt;/h3&gt;
&lt;p&gt;这一步需要到你的域名管理台(在哪买的域名就去哪)，将原来的DNS服务器删除，换成CF自己的。完成之后点击蓝色按钮。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/image-3-793x1024.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;设置ssl&#34;&gt;设置ssl&lt;/h3&gt;
&lt;p&gt;点击SSL/TLS按钮，将选项修改为&lt;code&gt;灵活&lt;/code&gt;，这样CF节点支持ssl，而源服务器不需要ssl。&lt;code&gt;完全&lt;/code&gt;的话，源服务器就需要支持ssl了。我的七牛图床域名不支持ssl，所以选择了灵活。这也是本篇文章的最开始的目的。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.foamzou.com/posts/use-cloudflare-as-free-ssl/image-4-1024x649.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;等待生效&#34;&gt;等待生效&lt;/h3&gt;
&lt;p&gt;等吧。修改DNS服务器那一步耗费的时间可能会长一些。你可以通过ping命令检查是否已经解析到CF的ip了。&lt;/p&gt;
&lt;h2 id=&#34;其它&#34;&gt;其它&lt;/h2&gt;
&lt;p&gt;你可能看到上一张图有很多菜单：缓存、防火墙、worker等。CF挺多功能的，有兴趣的话，注册一个玩玩吧。worker就是serverless那东西，类似AWS CloudFront的lambda@edge&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
