您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何利用Cloudflare为基于GitHub Pages的Hexo博客添加HTTPS支持

## 前言
对于使用Hexo静态生成器搭建在GitHub Pages上的博客来说,默认提供的`github.io`域名虽然支持HTTPS,但当使用自定义域名时,GitHub Pages的HTTPS支持存在诸多限制。本文将详细介绍如何通过Cloudflare的免费服务为您的Hexo博客实现全站HTTPS加密,提升安全性和SEO表现。
## 一、为什么需要HTTPS?
### 1.1 安全必要性
- **数据加密**:防止流量劫持和中间人攻击
- **身份验证**:确保访问的是真实服务器
- **SEO优势**:Google等搜索引擎优先排名HTTPS网站
- **现代浏览器要求**:Chrome标记HTTP站点为"不安全"
### 1.2 GitHub Pages的限制
- 自定义域名需手动配置HTTPS
- 不支持通配符证书
- 证书更新周期较长
## 二、准备工作
### 2.1 必要条件
- 已部署的Hexo博客(GitHub Pages托管)
- 注册的顶级域名(如example.com)
- Cloudflare免费账户
### 2.2 域名配置检查
```bash
# 确认DNS解析正常
dig yourdomain.com +short
# 应返回GitHub Pages的IP
185.199.108.153
按照Cloudflare提示,到域名注册商处将NS记录替换为:
lara.ns.cloudflare.com
reed.ns.cloudflare.com
类型 | 名称 | 内容 | TTL | 代理状态 |
---|---|---|---|---|
A | @ | 185.199.108.153 | Auto | 代理 |
A | @ | 185.199.109.153 | Auto | 代理 |
A | @ | 185.199.110.153 | Auto | 代理 |
A | @ | 185.199.111.153 | Auto | 代理 |
CNAME | www | username.github.io | Auto | 代理 |
nslookup yourdomain.com
# 应返回Cloudflare的IP地址
在GitHub Pages仓库根目录添加CNAME
文件:
yourdomain.com
www.yourdomain.com
{
"description": "Block malicious bots",
"expression": "(cf.threat_score gt 10)"
}
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
设置项 | 推荐值 |
---|---|
浏览器缓存TTL | 4小时 |
边缘缓存TTL | 1周 |
缓存级别 | 标准 |
<!-- 强制替换HTTP资源 -->
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com | openssl x509 -noout -dates
--force
参数hexo clean && hexo deploy --force
通过本文的配置,您的Hexo博客将获得:
✅ 全站自动HTTPS加密
✅ 全球CDN加速
✅ 增强的安全防护
✅ 详细的流量分析
Cloudflare的免费套餐已能满足大多数个人博客的需求,如需更高性能,可考虑升级到Pro套餐($20/月)。
附录A:推荐Cloudflare Worker脚本
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// 统一处理所有请求的HTTPS重定向
const url = new URL(request.url)
if (url.protocol === 'http:') {
url.protocol = 'https:'
return Response.redirect(url.href, 301)
}
return fetch(request)
}
附录B:Hexo配置示例
# _config.yml
url: https://yourdomain.com
permalink: :year/:month/:title/
更新日志
2023-08-20 初稿
2023-08-21 添加故障排查章节
”`
注:实际使用时请替换所有示例域名和占位图片链接。本文假设读者已具备基础的Hexo和GitHub使用经验,如需更基础的操作指导,建议补充相关章节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。