[Web] 使用 Lucky+Cloudflare 实现https+子域名访问
介绍一下我的使用条件:
Lucky: 使用Openwrt安装, 安装在主路由上 (安装位置随便)
域名: 在Domain.com购买, 托管到Cloudflare
IP: 动态的公网IP
安装Lucky
比较简单的方法, 可以使用Openwrt/docker安装. 如果使用的是Windows/WSL的docker, 记得注意自己的局域网IP, 保证Lucky服务可以访问到你的服务端的IP/端口. Luck的端口无所谓, 后面也基本用不到.
设置DDNS
打开Luck的webui, 点击动态域名
-添加任务
选择Cloudflare, 点击创建令牌
他会自动跳转到以下的Cloudflare界面(如果你已经登录的情况下), 点击创建令牌
选择第一个 编辑区域 DNS
, 选择 使用模板
选择你的域名, 其他地方不用修改, 直接继续
点击创建令牌
他会给出这个token
, 点击copy
复制下来
转到Lucky
, 把token
填进去, 域名列表填入你的域名和*.你的域名
看到公网IP说明DDNS就配置成功了
配置 Cloudflare 代理
找到Cloudflare的DNS记录
点击编辑, 把代理打开
配置好的效果
尝试去ping一下你的域名, 看到回复来自Cloudflare的IP就说明你的公网IP被隐藏了, 流量就会从Cloudflare走了(代价就是内网环境网速下降到公网环境的水平了, 建议仅用于博客/分享这种)
配置Https
转到Cloudflare, 选择SSL/TLS
-概述
点击配置
选择到完全(严格)
选择SSL/TLS
, 点击源服务器
, 选择创建证书
全部默认即可, 点击创建
复制粘贴密钥和Key, 保存到本地为你的域名.pem和你的域名.key
转到Lucky, 点击 安全管理
, 选择添加证书
把刚才的证书(PEM文件)和Key上传上去
看到时间解析正常说明证书添加正确
再次转到Cloudflare, 选择规则
-Origin Rules,
点击创建规则
选择传入所有请求
, 重写到...
这里端口随便填写, 但是想要直接访问的话就填443
(https默认端口), 点击保存
配置子域名访问
再次转到Lucky, 转到web服务
, 点击添加规则
填入443
端口, 打开TLS
和HTTP3
添加子域名, 填入内网IP
ping 一下子域名, 可以看到已经可以正常访问