V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
msmmbl
V2EX  ›  问与答

大量内网设备 https 问题

  •  
  •   msmmbl · 2020-09-25 16:10:43 +08:00 · 2146 次点击
    这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    内网有 200 多台摄像头(具体来说,是运行 debian 的开发板),提供了 http 地址的 mjpg 地址可以直接看到视频,大概是

    http://192.168.25.1/video.mjpg
    http://192.168.25.2/video.mjpg
    http://192.168.25.3/video.mjpg
    http://192.168.25.4/video.mjpg
    http://192.168.25.5/video.mjpg
    ...
    http://192.168.25.200/video.mjpg
    

    现在遇到了一个问题,我要在一个 https 的网页中,通过 img 标签显示视频,然而因为这些视频都是 http 的,浏览器拒绝显示。

    我想有这么几个方案:

    1. 通过一台中心的 nginx 反代,给他们加上 https 。但是这样流量都会跑到反代服务器上。到时候估计反代服务器的网络压力有点大

    2. 在每个摄像头上,签发自签名的证书,直接给它的 IP 签。不知道这个好不好搞,可不可以像泛域名一样,整个网段就签名了。

    3. 或者要不给每个设备绑定一个域名吧。申请一个域名比如 aaa.com ,然后把*.device.aaa.com 申请 ssl 证书,然后找找有没有什么 dns 服务器,可以把 192_168_25_x.device.addd.com 中的 IP 匹配出来,解析到 192.168.25.x

    求思路。

    第 1 条附言  ·  2020-09-27 04:44:38 +08:00
    感谢

    最后的方案是申请了泛域名证书,然后将证书推送到每个节点上。

    阿里云 dns 用 excel 做了个表格,直接批量把 192.168.25.1~192.168.25.254 都写了 A 记录。
    16 条回复    2020-09-27 09:20:53 +08:00
    jim9606
        1
    jim9606  
       2020-09-25 16:17:16 +08:00   ❤️ 1
    按理来说标签地址写完整 url (也就是 http 开头的)应该不会拒绝显示的,除非浏览器配置为拒绝混合内容。
    如果要加,肯定是用 nginx 反代,自签名证书浏览器是不信任的。
    KyonLi
        2
    KyonLi  
       2020-09-25 16:20:37 +08:00   ❤️ 1
    我选择的第二个方案
    keyfunc
        3
    keyfunc  
       2020-09-25 16:26:23 +08:00   ❤️ 1
    访问这个网页的设备固定吗?如果固定的话,反响代理可以直接建在本机上,就不存在网络压力了。
    lslqtz
        4
    lslqtz  
       2020-09-25 16:34:48 +08:00   ❤️ 1
    怀疑是浏览器问题。。。
    混合内容浏览器不拒绝显示吧。。。
    keyfunc
        5
    keyfunc  
       2020-09-25 16:39:20 +08:00
    也可以看看是否定义了 CSP,并拒绝了所有混合内容。
    msmmbl
        6
    msmmbl  
    OP
       2020-09-25 16:55:23 +08:00
    @KyonLi 我试了下方案二,这个是不是还需要把证书加到浏览器的信任列表呢
    opengps
        7
    opengps  
       2020-09-25 17:01:28 +08:00
    nginx 前面全部用 https,后端用 http 可行不?(我没玩过 nginx,我是参考负载均衡 slb 推测的)
    msmmbl
        8
    msmmbl  
    OP
       2020-09-25 17:18:54 +08:00
    @opengps 目前我在调试阶段就是这么玩的 /(ㄒoㄒ)/~~
    Daylight1993
        9
    Daylight1993  
       2020-09-25 17:37:34 +08:00
    用域名申请通配符 ssl 证书,然后泛解析到本地内网 ip 就可以了。
    Daylight1993
        10
    Daylight1993  
       2020-09-25 17:39:11 +08:00   ❤️ 1
    哦,不是泛解析,说错了。得按照设备地址逐条解析,不过目前主流 dns 都支持批量导入功能的。
    Aruforce
        11
    Aruforce  
       2020-09-25 17:39:53 +08:00
    2 这个需要自签一个根证书 然客户端浏览器信任。。。然后 用根证书 root.key 签发各个 IP 的证书。。。工作量也很大。。。
    kokutou
        12
    kokutou  
       2020-09-25 17:42:08 +08:00 via Android
    可以申请公网可用的 *.aaa.com 泛域名证书
    然后内网 dns 服务器把域名 192_168_1_2.aaa.com 指向 192.168.1.2 就行了。
    Xusually
        13
    Xusually  
       2020-09-25 17:42:30 +08:00
    @opengps 可行,而且可以算是基操
    phxsuns
        14
    phxsuns  
       2020-09-25 17:46:32 +08:00
    我倾向于方案 1,中心化管理证书的话,到时候续签维护会比较容易。
    msmmbl
        15
    msmmbl  
    OP
       2020-09-27 04:44:58 +08:00
    @Daylight1993 最后使用了您的方案,谢谢。
    galenzhao
        16
    galenzhao  
       2020-09-27 09:20:53 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.