V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
itskingname
V2EX  ›  NAS

在群晖通过 docker 部署的 bitwarden 能不能有两套 SSL 证书

  •  
  •   itskingname · 23 天前 · 1812 次点击

    背景

    1. 群晖有外网 IP 。通过 DDNS 绑定了域名。这个域名自带 SSL 证书。
    2. 因为一些原因,家里的路由器不能设置 loopback ,导致在家里使用外网 IP 不能访问 bitwarden.

    问题

    在家里不能通过 DDNS 的域名来访问 bitwarden ,因为没有 IP loopback 导致连不上。但当我使用 192 这个路由器的内网 IP 时,由于不是 https 链接,bitwarden 客户端拒绝链接。

    请问有没有办法给内网的 bitwarden 单独设置一个 ssl 证书,内网通过 IP 访问的时候走这个证书,外网通过域名访问的时候走 DDNS 域名自带的证书?

    我也尝试过在群晖上面设置一个 DNS 服务器,在家里的时候,内网优先使用这个 DNS 服务器,直接把域名解析到内网 IP 。在外面的时候,走正常的公共 DNS 服务器,于是就能连我的群晖外网 IP 。但不知道是不是设置有问题。电脑设置了群晖的 DNS 服务器以后,解析域名出来还是外网 IP 。

    39 条回复    2024-05-27 17:27:52 +08:00
    yujiang
        1
    yujiang  
       23 天前
    我也有类似问题,解决方法是套一个 Nginx 反代
    itskingname
        2
    itskingname  
    OP
       23 天前
    @yujiang 那你的方案是外网的时候直连 Bitwarden ,内网的时候通过 nginx 连 Bitwarden ,在 nginx 设置 ssl 证书。这样就分开了?
    ysc3839
        3
    ysc3839  
       23 天前 via Android
    路由器上 DNS 设置把那个域名的解析改成内网 IP ,如果不支持的话那就在群晖上自建 DNS 服务器吧,不用路由器的 DNS
    itskingname
        4
    itskingname  
    OP
       23 天前
    @ysc3839 你看我上面写的。设置以后有问题。
    ysc3839
        5
    ysc3839  
       23 天前 via Android
    @itskingname 说明设置错了,你是怎么设置的
    Puteulanus
        6
    Puteulanus  
       23 天前
    ——因为没有 IP loopback 导致连不上
    你在路由器上直接把 DDNS 的域名给解析到 192 那个 IP 去,不会有 IP loopback 的问题呀
    Puteulanus
        7
    Puteulanus  
       23 天前
    你最后一段就是正确的解决方案,只是得看一下它为什么没有正常工作(依然解析出外网 IP )。你用的 DNS 服务器是 adguard home 吗?它还挺好用的
    coolloves
        8
    coolloves  
       23 天前
    外网 -> yourdomain -> nginx -> bitwarden
    内网 -> yourdomain -> nginx -> bitwarden
    同一套配置,唯一不同的就是你需要在内网中配置 host 也好,配置 dns 也好,让 yourdomain -> 192.168.x.x
    coolloves
        9
    coolloves  
       23 天前
    @coolloves 或者你就用不同的域名,就是两套 ssl 了

    外网 -> yourpubdomain -> nginx -> bitwarden
    内网 -> yourpridomain -> nginx -> bitwarden
    suifengdang666
        10
    suifengdang666  
       23 天前
    #3 正解,也是我目前的方案,实在不行在设备上加 hosts 指向内网 ip
    royking930911
        11
    royking930911  
       23 天前
    插嘴问一句 密码管理 和网页收藏夹同步 有没有一套的自部署的解决方案 没有的话 有哪些比较好用的推荐?
    happyxhw101
        12
    happyxhw101  
       23 天前
    很简单啊,hosts 就行,或者改局域网 dns
    itskingname
        13
    itskingname  
    OP
       23 天前
    @Puteulanus #7 是群晖自带了一个 DNS 服务器。
    itskingname
        14
    itskingname  
    OP
       23 天前
    @happyxhw101 改 hosts 麻烦的地方在于,离开家以后还要改回来。
    Puteulanus
        15
    Puteulanus  
       23 天前
    @itskingname 那我觉得你还是排查一下为什么在内网还会解析出公网 IP ,几个猜测:
    1. 群辉的 DNS 没有正常工作(比如记录设置错误等),可以用 nslookup 确认
    2. 电脑这边有 DNS 缓存(可以尝试清理缓存或者等一段时间)
    3. 电脑 DNS 设置或者 DHCP 下发有误(基本上可以在网卡状态页面确认)
    4. 电脑上有其他拦截了 DNS 的东西(梯子,浏览器的安全 DNS 等)

    如果是 1 的问题的话谨慎建议你换 adguard home 试试,如果你没有什么服务依赖群晖自己的 DNS 的话,adguard home 可能比群晖官方 DNS 套件好用,还有乐观缓存可以加速访问
    TsubasaHanekaw
        16
    TsubasaHanekaw  
       23 天前
    内网直接改 host 就行.不要搞其他的
    itskingname
        17
    itskingname  
    OP
       23 天前
    @Puteulanus 我准备试一试 adguard home
    royking930911
        18
    royking930911  
       23 天前
    看了这个帖子 尝试部署了一下 发现了一个非常想吐槽的点
    阿里云的免费 ssl 证书现在只有三个月有效期了 且一年最多 20 个证书额度
    然后去腾讯云看 今年 4 月下旬开始 免费的 ssl 证书也变成 3 个月有效期了 但是额度变成 50 个
    哎 太难了 这不得每三个月就得换一下证书 有没有啥自动化脚本可以自动续期或者更换的?
    diedat17
        19
    diedat17  
       23 天前
    我没有公网 ip ,我的解决方案是用 cloudflare tunnel
    wanqingfengtao
        20
    wanqingfengtao  
       23 天前
    @royking930911 试一下 acme.sh
    acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
    feaul
        21
    feaul  
       23 天前
    我用的是 frp,内外网都没有问题
    huang86041
        22
    huang86041  
       23 天前
    我是在路由器里面加入 host 解决了。网址指向内网 IP 地址
    sekisui
        23
    sekisui  
       23 天前 via iPhone
    路由器直接挟持域名 包括 hosts 等等
    FrankAdler
        24
    FrankAdler  
       23 天前 via Android
    应该是你设置错了,dns 直接解析到群晖上是绝对可以的,那么多人这么用呢
    r6cb
        25
    r6cb  
       23 天前
    路由器装个 AdGuard Home ,把 ddns 的域名解析成内网 ip ,ddns 用外网 ip 。这样在家里连上路由器就是用内网 ip ,到外面用公共的 dns 解析出来就是外网 ip
    charley008
        26
    charley008  
       23 天前
    没有公网 ip ,用的是 ipv6.然后通过控制面板-登录门户-反向代理服务器解决
    povsister
        27
    povsister  
       22 天前 via iPhone
    路由器不支持 hairpin ?
    benjaminliangcom
        28
    benjaminliangcom  
       22 天前
    我用的 vaultwarden + traefik + let's encrypt 自动配置证书。
    我家里面有一个 DNS 服务器( Adguard home ),在家里面会解析为 traefik 内网 IP ,在外面用外网 IP ( FRP 的 IP )。
    VaultWarden 本身就需要依靠反代实现 https ,所以不算增加了复杂度。
    alfawei
        29
    alfawei  
       22 天前 via iPhone
    ltkun
        30
    ltkun  
       22 天前 via Android
    路由器 dns 劫持肯定是 OK 的
    可以考虑换个路由器
    Autonomous
        31
    Autonomous  
       22 天前
    本地 DNS 重写可解
    wheat0r
        32
    wheat0r  
       22 天前
    优先用 DNS 解决问题
    备选 NAT Hairpin
    lm930129
        33
    lm930129  
       22 天前
    @royking930911 acme 可以申请泛域名证书,自动续期
    cnhongwei
        34
    cnhongwei  
       22 天前
    群晖自己本来就使用的是 nginx ,你 ssh 上去,把你的 nginx 配置文件放到 /etc/nginx/sites-enabled 这个目录中就行了,你自己想怎么发挥都可以,我就是 docker 启动很多服务,使用 nginx 反代出去 10 几个服务。证书你可以使用 let's encrypt ,自动更新方法也很多,我因为是 vps 上有自动更新,所以是使用定时任务同步回来的,定时任务我是直接编辑 /etc/crontab 来实现的。
    cnhongwei
        35
    cnhongwei  
       22 天前
    没有必要设置 dns ,因为有些浏览器不使用设置的 dns ,而使用自己设置中的 dns ,所以最好就是内、外网使用不同的域名,通过 nginx 反代。
    z5238384
        36
    z5238384  
       22 天前
    之前我也是直接在路由器上设置静态 dns 记录,后面因为 clash 用起来及其麻烦,经常出现莫名其妙的问题,最后还是路由器上设置一条 loopback ,建议能直接 loopback 别折腾了,明明就加一条 NAT 记录的事情, 你搞来搞去,整一堆麻烦事
    itskingname
        37
    itskingname  
    OP
       20 天前
    @ltkun
    @povsister

    因为现在使用光猫拨号,路由器桥架模式接光猫。要加 loopback 需要在光猫上改。我已经找到工作人员要到超级管理员密码了。但是光猫上面没有没有改 loopback 的地方。
    @z5238384
    z5238384
        38
    z5238384  
       20 天前 via iPhone
    @itskingname 你真有做 NAT 环回的需求 建议 就放弃光猫播号, 非常不推荐你用 dns 来实现 。 最痛苦的问题哪怕你设置都正确,各设备 DNS 缓存的问题 也会让你的体验相当糟糕,尤其是手机这种经常在移动网络和局域网 wifi 之间经常切换的设备,如果你还是考虑科学上网问题,基本上需要你每个设备都要单独设置,同时如果你如果想用一个域名访问内网多个设备,dns 这种方式会让你抓狂,足够让你喝几壶 。 没有更比一条源 NAT 记录 更简单 稳定的方式了,这样代价仅仅是让局域网设备之间互相访问多多一次 NAT 而已,没有什么其他更好选择,以上 亲身经历 。
    itskingname
        39
    itskingname  
    OP
       20 天前
    @z5238384 理论上确实是这样。把光猫改成桥接,把路由器改成拨号。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   882 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:13 · PVG 04:13 · LAX 13:13 · JFK 16:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.