不使用 SSL,如何让浏览器可以使用通知? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mlyykk
V2EX    浏览器

不使用 SSL,如何让浏览器可以使用通知?

  •  
  •   mlyykk 2023-05-22 17:25:03 +08:00 3542 次点击
    这是一个创建于 903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是这样的,项目是本地自用,会用到 通知。 但 chrome 要求必须是 https 才能使用通知。

    目前尝试过的方案: 1:用 electron 封装了一下,可以 2:本地 localhost 加了证书,可以

    但总觉得本地和局域网使用,想简单点。 有没有办法就用 http ,并且还能使用通知呢?

    第 1 条附言    2023-05-22 21:11:28 +08:00
    自用,没有用户,以后也不会有。
    域名一直在用,路由自动 ddns 。也只是方便自己在外面的时候好管理一些。目前是有证书的状态,在这里就是想讨论看看有没有 http 的方案。
    31 条回复    2023-05-23 09:54:26 +08:00
    codehz
        1
    codehz  
       2023-05-22 17:31:17 +08:00   1
    我记得 localhost 是可以不用证书也能用 pwa 的全部功能的啊
    Nazz
        2
    Nazz  
       2023-05-22 17:32:34 +08:00
    使用自签名证书 ?
    idealhs
        3
    idealhs  
       2023-05-22 17:34:51 +08:00
    蹲一下
    目前的浏览器对 http 限制了很多功能,不仅仅是通知,还包括打开外部链接,使用 webrpc 等等
    这使得一些无需域名和 SSL 的内网服务变得不完整
    mlyykk
        4
    mlyykk  
    OP
       2023-05-22 17:40:21 +08:00
    @codehz 因为局域网其他电脑也会用到,所以不是只使用 localhost 。会用到局域网 IP 访问的方式。
    mlyykk
        5
    mlyykk  
    OP
       2023-05-22 17:43:26 +08:00
    @idealhs 嗯,是这样的一个情况。
    asdjgfr
        6
    asdjgfr  
       2023-05-22 17:43:55 +08:00
    都用 electron 了就别用浏览器的通知了
    https://www.electronjs.org/zh/docs/latest/tutorial/%E9%80%9A%E7%9F%A5
    ochatokori
        7
    ochatokori  
       2023-05-22 17:50:32 +08:00 via Android
    @asdjgfr #6 认真审题,楼主都说用 electron 是一个可行的解决方法了但是想更简单点
    ochatokori
        8
    ochatokori  
       2023-05-22 17:53:53 +08:00 via Android
    如果你是自己用不是给用户用的话,可以用油猴的 api GM_notification
    装个油猴插件写个脚本把这个 api 传递到 window 上,就能让你自己的应用来调用了
    riggzh
        9
    riggzh  
       2023-05-22 17:55:23 +08:00
    @ochatokori #8 我猜他就是要给别人用
    ety001
        10
    ety001  
       2023-05-22 17:57:25 +08:00
    如 3L 所说,这是浏览器的强制要求。
    你只能按照浏览器的要求来。
    之前我遇到过类似问题,最终是弄了一个域名指向局域网 ip ,然后用 acme.sh 的 dns 方式给这个域名申请证书
    Juszoe
        11
    Juszoe  
       2023-05-22 18:30:15 +08:00
    10 楼说的对,买个域名吧,你和用户只能有一个简单
    qiyuey
        12
    qiyuey  
       2023-05-22 18:38:15 +08:00
    rsocket on http ?
    kenvix
        13
    kenvix  
       2023-05-22 18:41:58 +08:00
    这个是强制要求,没办法的,但也不需要买域名。
    自己签一个 CA ,然后让局域网所有电脑都安装、信任这个 CA 证书,然后自己用这个 CA 签发 IP SSL 证书就行了
    shyling
        14
    shyling  
       2023-05-22 18:46:49 +08:00
    上证书,改 hosts
    netnr
        15
    netnr  
       2023-05-22 18:54:32 +08:00 via Android
    浏览器设置可以加安全域白名单,类似启动参数,但也不方便
    我目前也用到这个功能,还有语音播报
    phithon
        16
    phithon  
       2023-05-22 19:09:23 +08:00
    买个域名,可以申请证书,也可以指向内网
    noqwerty
        17
    noqwerty  
       2023-05-22 19:12:11 +08:00 via iPhone
    本地开发的话可以用 chrome://flags/#unsafely-treat-insecure-origin-as-secure
    mxT52CRuqR6o5
        18
    mxT52CRuqR6o5  
       2023-05-22 19:20:24 +08:00 via Android
    对用户最友好的方案就是买个域名
    newmlp
        19
    newmlp  
       2023-05-22 19:25:59 +08:00
    自用就用自签名证书。。。
    Jirajine
        20
    Jirajine  
       2023-05-22 20:41:01 +08:00
    https 不麻烦,公网可以直接用 sslip.io 的域名签证书,或者直接签 ip 证书也行。内网像 caddy 之类的很多工具都能一键起 https 服务 /自签证书 /添加信任一条龙。
    mlyykk
        21
    mlyykk  
    OP
       2023-05-22 21:05:29 +08:00
    @ochatokori 非常感谢你的建议,我稍后试试。对的,我就是给自己用。
    mlyykk
        22
    mlyykk  
    OP
       2023-05-22 21:08:02 +08:00
    @netnr 嗯。需求类似。就像简单点,因为自己用,web 更新起来方便些。electron 的话,每次都要打包。有时候一些小改动,就想简单点处理立即更新。
    mlyykk
        23
    mlyykk  
    OP
       2023-05-22 21:10:14 +08:00
    @mxT52CRuqR6o5 自用,没有用户,以后也不会有。域名一直在用,ddns 。也只是方便自己在外面的时候好管理一些。目前是有证书的状态,在这里就是想看看有没有 http 的方案。
    lisongeee
        24
    lisongeee  
       2023-05-22 21:25:44 +08:00
    用油猴脚本把 GM_api 注入到 unsafeWindow 上即可

    我自己写的示例 https://github.com/lisonge/network-extension
    lisongeee
        25
    lisongeee  
       2023-05-22 21:27:57 +08:00
    和你相反,我的需求则是在 https 上访问 http 资源,也是本地自用,这个也可以用油猴 GM_api 实现
    mlyykk
        26
    mlyykk  
    OP
       2023-05-22 21:41:47 +08:00
    @lisongeee 嗯,https 上如果有请求 http ,也无法通知。我看看你的。
    14
        27
    14  
       2023-05-23 00:29:24 +08:00
    楼上说的 chrome://flags/#unsafely-treat-insecure-origin-as-secure 是正解,可以收到通知,还可以加载 Service Workers
    2828kakafa
        28
    2828kakafa  
       2023-05-23 08:24:12 +08:00 via iPhone
    找运维。
    kongkx
        29
    kongkx  
       2023-05-23 08:33:36 +08:00 via iPhone
    内网服务器做用同样的证书做个 vhost ,在路由上加个 dnsmasq 将域名解析到内网服务器
    mlyykk
        30
    mlyykk  
    OP
       2023-05-23 08:49:02 +08:00
    @14
    @noqwerty

    感谢建议,这个对于本地项目来讲,确实很合适。
    siweipancc
        31
    siweipancc  
       2023-05-23 09:54:26 +08:00 via iPhone
    很合理的安全限制。搞个自签名证书就行,找运维
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1191 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:36 PVG 07:36 LAX 15:36 JFK 18:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86