开源域名代理与流量限制方案 - Cloudflare + Ingress + 自签名证书
目录一. Cert Manager的局限性1.HTTP验证问题2.DNS验证问题3.缺乏额外防护二. Cloudflare免费模式下的优势1.免费的CDN与DNS2.免费的SSL证书3.免费的WAF与流量限制三. 解决方案概览1.域名代理2.HTTPS加密3.流量控制四.配置示例1.配置DNS和网络安全组2.创建Cloudflare源证书3.配置Ingress使用新的secret4.配置Cloudflare的SSL/TLS加密模式5.启用HTTP重定向HTTPS6.配置访问速率限制五.验证一. Cert Manager的局限性我们在开源域名证书工具 - cert-manager中演示了Cert Manager自动签发和管理TLS证书的过程但在实践中会遇到一些问题1.HTTP验证问题cert-manager默认使用HTTP-01验证时需要暴露服务器或负载均衡的80端口给互联网。如果环境比较敏感或者不想对外暴露服务这会带来极大的安全隐患。2.DNS验证问题采用DNS-01验证虽然只需要有DNS的API修改权限但是对于没有公网DNS控制权的用户来说非常麻烦并且无法保证安全性需要额外的审计手段。3.缺乏额外防护虽然cert manager可以完成证书自动化但它本身不提供CDN、WAF、流量限制等功能即便对于个人测试环境也显得很单薄。所以如果只需要快速实现HTTPS并配合一些流量管理cert manager并非最优选择。二. Cloudflare免费模式下的优势针对个人测试环境等Cloudflare的免费套餐已经提供了很多的基础实用功能。1.免费的CDN与DNS提供最基本的CDN缓存与DNS服务器功能。2.免费的SSL证书提供免费通用的SSL/TLS证书保护我们的站点类似AWS Certificate Manager并且支持Cloudflare站点到我们业务站点之间通过自签名证书做TLS加密。3.免费的WAF与流量限制即使免费模式也能设置IP访问限制、速率限制、防爬虫等规则弥补了cert manager等工具的不足。三. 解决方案概览我们通过Cloudflare Kubernetes Ingress 自签名证书构建一个测试环境实现1.域名代理外部访问经过Cloudflare再由Ingress转发到后端服务隐藏我们业务服务器的IP地址。2.HTTPS加密由Cloudflare提供SSL/TLS终端供给浏览器访问域名使用Cloudflare和Ingress之间使用自签名证书加密流量。3.流量控制通过Cloudflare页面设置简单的IP访问限制和速率限制。四.配置示例1.配置DNS和网络安全组首先我们查看Cloudflare名称服务器然后把域名的DNS服务器修改为Cloudflare指定的服务器这里以阿里云购买的域名为例配置生效要等待一段时间我们可以同时配置DNS记录个人测试环境没有创建负载均衡使用云厂商的负载均衡会产生额外的费用直接A记录指向了Kubernetes Ingress所在的服务器地址。在服务器对应的网络安全组删除所有0.0.0.0/0的入站规则只配置Cloudflare出口地址2.创建Cloudflare源证书Cloudflare和源服务器之间的TLS证书可以用openssl等工具生成。这里我们使用最简单的方式让Cloudflare帮我们生成下载证书到服务器中然后创建secret# kubectl -n drone create secret tls cloudflare-origin-tls --certorigin.crt --keyorigin.key# kubectl -n drone get secret | grep cloudcloudflare-origin-tls kubernetes.io/tls 2 22s3.配置Ingress使用新的secret修改之前的yaml文件apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: drone-ingress namespace: drone annotations: nginx.ingress.kubernetes.io/backend-protocol: HTTP nginx.ingress.kubernetes.io/ssl-redirect: true #cert-manager.io/cluster-issuer: letsencrypt-prod ##注释/删除cert-manager引用 spec: ingressClassName: nginx tls: - hosts: - drone.fzwtest.xyz secretName: cloudflare-origin-tls ##改用我们新创建的secret rules: - host: drone.fzwtest.xyz http: paths: - path: / pathType: Prefix backend: service: name: drone-server port: number: 80执行部署# kubectl apply -f drone-ingress.yaml4.配置Cloudflare的SSL/TLS加密模式5.启用HTTP重定向HTTPS6.配置访问速率限制这里设置一个最简单的规则同一个IP来源对域名的访问每10秒钟最多10次超过限制后阻止它的访问请求10秒钟。五.验证现在访问http://drone.fzwtest.xyz前面的文章我们用Cert Manager代理过的域名。验证是否达到预期。1.Cloudflare拦截了请求并返回301跳转https给客户端2.客户端看到的Server地址是Cloudflare的地址隐藏了真实的服务器地址3.显示受信任的Cloudflare边缘证书4.多次快速刷新页面出现访问频率限制5.等待10秒后解除拦截其他子域名只需要修改对应的Kubernetes Ingress即可非常简单高效感谢Cloudflare提供的Free套餐。

相关新闻

实现队列与任务调度的综合研究:从数据结构到分布式架构

实现队列与任务调度的综合研究:从数据结构到分布式架构

摘要 本报告旨在深入、系统地探讨“队列”与“任务调度”这两个在计算机科学,尤其是分布式系统和高性能计算中至关重要的概念。我们将从最基础的数据结构层面出发,分析队列的抽象定义、核心设计模式及其在现代编程语言中的经典实现,包括数组…

2026/7/3 12:45:49 阅读更多 →
计算机技术与科学毕业设计创新的选题怎么选

计算机技术与科学毕业设计创新的选题怎么选

1 引言 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应用需求&#xf…

2026/5/17 2:29:15 阅读更多 →
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析

Pytest Fixture 作用域与接口测试 Token 污染问题实战解析

引言 在做接口自动化测试时,你可能遇到过这样的情况:单独运行某个用例一切正常,但批量跑测试时,大量接口返回 401 或权限错误。这通常是 fixture 生命周期与共享状态导致的问题。本文结合实际场景,带你深入理解 Pytest…

2026/5/17 2:29:14 阅读更多 →

最新新闻

ParsecVDisplay:解锁Windows虚拟显示新姿势,告别多屏焦虑

ParsecVDisplay:解锁Windows虚拟显示新姿势,告别多屏焦虑

ParsecVDisplay:解锁Windows虚拟显示新姿势,告别多屏焦虑 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否曾因物理显示器不足而苦恼?是否…

2026/7/3 12:43:21 阅读更多 →
LosslessCut无损编辑架构:FFmpeg GUI工具的技术革新与多场景应用

LosslessCut无损编辑架构:FFmpeg GUI工具的技术革新与多场景应用

LosslessCut无损编辑架构:FFmpeg GUI工具的技术革新与多场景应用 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在传统视频编辑领域,重编码带…

2026/7/3 12:41:17 阅读更多 →
ParsecVDisplay虚拟显示器驱动架构深度解析:Windows高性能虚拟显示解决方案实战指南

ParsecVDisplay虚拟显示器驱动架构深度解析:Windows高性能虚拟显示解决方案实战指南

ParsecVDisplay虚拟显示器驱动架构深度解析:Windows高性能虚拟显示解决方案实战指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd ParsecVDisplay是一款基于Parsec …

2026/7/3 12:41:17 阅读更多 →
【JAVA毕设源码分享】基于springboot人像后期融合网站的设计与实现的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot人像后期融合网站的设计与实现的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/3 12:39:17 阅读更多 →
锂电牵引辊需具备哪些核心性能?靠谱生产厂家怎么选?

锂电牵引辊需具备哪些核心性能?靠谱生产厂家怎么选?

锂电牵引辊是锂电池极片、隔膜生产线上的核心传动部件,承担基材平稳传输、张力精准调控的关键作用,其加工精度、材料耐候性直接决定电池生产良率与产线运行稳定性,适配锂电复杂工况的定制化产品与专业制造厂家,是新能源制造企业提…

2026/7/3 12:37:16 阅读更多 →
网盘直链下载助手终极指南:如何5分钟内实现浏览器直接下载文件

网盘直链下载助手终极指南:如何5分钟内实现浏览器直接下载文件

网盘直链下载助手终极指南:如何5分钟内实现浏览器直接下载文件 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…

2026/7/3 12:35:15 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻