最近用 n1 在局域网内搭建了个轻 nas ,整个架构现在是这样的:
但是现在访问是用 http://192.168.1.xxx 的方式,感觉不太安全,(因为局域网是合租公用的),所以想在现有基础上加上 https 传输更安全点
目前了解到的比较可行的方案是:解析一个二级域名,再申请个对应的 ssl 证书(非自签名证书),然后在局域网修改路由器的 hosts ,将域名转发到 n1 的 ip 上,这样在局域网内的所有设备都可以通过 https 加域名的方式访问 n1 并且不需要修改设备的 hosts 信息
但是现在问题是,主路由器是公用的并且不知道管理台密码,没法操作配置 hosts ,副路由器倒是我自己的但是配置 hosts 好像也没用
现在到这里卡住了,有什么办法解决吗?
1
qinyui OP |
2
pigeon2049 322 天前
cloudflare zero trust tunnel
|
3
cpstar 322 天前 3
直接把域名解析为 192.168.1.x 就行了。改啥 hosts 。。。
|
4
biabia123456 322 天前 1
外网有访问的需求吗 没有的话直接二级域名 DNS 解析到内网 ip 就好了
|
5
Vegetable 322 天前
你能控制域名,直接解析到内网 IP 就行了,先找公网服务器做好证书,然后 DNS 解析到局域网,不用动什么 host
|
6
cpstar 322 天前
然后,内网还要啥 ssl ,非要 ssl 自签一个得了。不对公网,证书的成本完全无法分摊。
|
9
ilovey482i 322 天前
本机改 hosts 也一样,在 host 里写域名对应的 IP
|
10
qinyui OP @ilovey482i 那也手机改着不方便,需要 root 或者越狱
|
11
cpstar 322 天前
部署配置不是成本?免费的每年更新一次不是成本? Let'sEncrypt 的脚本实施不是成本?
你理解的成本是啥,只是那一点点钱么? |
12
leonshaw 322 天前
DNS 直接解析到内网 IP 不就行了
|
13
InDom 322 天前
DNS 解析到内网,然后定时通过 DNS 认证签发证书。
|
14
ilovey482i 322 天前
@qinyui 手机的话,你要自建 DNS 服务了,自己解析域名
|
15
whileFalse 322 天前 via Android
1. 搞一张证书 2.域名解析到 n1 的内网地址
不就完了吗,楼主都在想些什么啊。 |
16
qinyui OP #7 测试过没问题,直接域名解析到内网地址就行了,再配置上 ssl 证书也没问题,以前不知道还能直接解析到内网地址😂
|
17
qinyui OP 顺便再问下,如果是纯内网环境没有外网的话,域名解析内网 ip 这种方式就不行了吧?那时候怎么解决呢?
|
18
Jinnrry 322 天前 via Android
what ?你是为了防止中间人攻击?我觉得跟你合租的人 99.999%是不懂中间人攻击的,就算你是那 0.001%刚好遇上了一个搞安全的,我觉得他 99.999%也不会吃饱了去中间人攻击研究你这个 nas 服务
|
20
qinyui OP @biabia123456 后边也准备弄个内网穿透实现外网访问,到时候我再弄个二级域名解析就行了吧?
|
21
zhujinliang 322 天前
我考虑过,申请一个泛域名证书不难,主要是内网设备很多,而且像交换机这种不能安装软件的,更新证书会比较麻烦
|
22
Blunt1991 322 天前
caddy+DNS 直接指向内网 IP
|
23
Jinnrry 322 天前 via Android
@qinyui 你流量都在内网,也就是和你合租跟你共用路由器交换机且他必须有路由器管理员密码且必须能够注入路由器固件的情况下可能可以监听你的流量。这也需要担心安不安全?
|
24
dvz 322 天前
caddy 或者 npm 反向代理
|
26
mithrilyue 322 天前
docker 的话 traefik+dns-challenge ,群晖之类的可以反代到 traefik,也可以 acme.sh+dns-challenge+dsm-deploy
教程都挺全的,配置起来很简单的。 |
27
Ariake265 322 天前
dns 解析到内网 IP 之后直接 caddy
|
30
vmebeh 322 天前
都放在副路由器后面不就行了
|
31
SenLief 322 天前
内网自己签名就行
|
32
Jinnrry 322 天前 via Android
@qinyui 你真要是为了防室友的话,那你还不如像#30
说的,你自己再搞个子网,跟公用的网络隔开,做网络隔离岂不更安全,而且维护也简单很多。 你真硬要上 ssl 的话,像楼上那些说的搞反代,那不把服务暴露到公网了吗,那不反而增加了安全风险。 真要上 ssl 那你就域名解析指到内网,但是验证使用 dns 记录验证,不要用 http 验证。 |
33
libook 322 天前
我现在的方案是这样的:
使用 Let's Encrypt 的 DNS-01 challenge 申请证书,在 DNS 解析平台上填写相应的 TXT 记录,这样证书签发平台只需要去看你的域名的 DNS 解析记录就可以确定你是不是拥有这个域名。 DNS-01 challenge 可以看这个: https://letsencrypt.org/docs/challenge-types/#dns-01-challenge 然后使用 acme.h 获取/刷新证书,定了个每月执行的计划任务。 给每个服务分配一个二级域名,并解析到 NAS 的内网 IP 。 NAS 上的 Nginx 配置每个域名( host 指令)对应代理到的端口号,并加载证书提供 HTTPS 访问。 |
34
qinyui OP |
36
poopoopoopoo 322 天前
不如简单点 deny all allow XXXX
|
37
qinyui OP @poopoopoopoo 是个思路,就是所有终端得固定下 ip
|
38
benjaminliangcom 322 天前
不用改 host ,直接把 DNS 解析到 lan 地址,最好配合 nginix proxy manager/Traefik 自动化 acme
|
39
fsdrw08 321 天前 via Android
HTTPS 整个链条涉及到几个服务:
1 ,dns ,浏览器检验证书最重要的就是看域名,因此要先部署一个 DNS 服务器,我自己环境用的是 consul, 够轻量,也可用 freeipa, 2 ,CA, 即证书颁发机构,由于是内网,只能自己搭,可以用 step-ca, 或者 hashicorp 的 vault, 我目前用的是 step-ca, 但打算换到 vault ,因为 vault 支持的功能更多,也可以用 freeipa, 这个也有 ca 功能 3 ,证书签发,我建议使用内网 acme ,step-ca, vault, freeipa 都支持 acme 4, 反向代理,我用的是 traefik ,因为它支持 acme,能自动获取证书,还有 ui 如果想省心,可以部署 freeipa+traefik ,就能实现内网 HTTPS ,部署方式可以考虑 podman 容器化部署,为什么用 podman ?因为 podman 支持 k8s yaml 的方式部署,我写了些专用于 podman 的 helm chart, 包含了 freeipa, traefik, consul https://github.com/fsdrw08/helm-charts/tree/e820377c669dc2665c4091d4a7ed838cca0a7cd0/charts |
40
fsdrw08 321 天前 via Android
我看你这里还涉及到路由,也可以考虑用 vyos ,我现在这套内网 HTTPS 链条的所有服务都是部署在运行 vyos 的虚拟机上,可以使用 terraform 部署,参考 https://github.com/fsdrw08/SoloLab/tree/main/TerraformWorkShop/System/VyOS
|
41
zgw199012 321 天前
https://192.168.1.xxx 不就可以吗
|