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

局域网内的网站,如何加上证书?想使用 https://192.168.*.*这样的格式访问,为了用 http2

  •  1
     
  •   darknoll · 2020-12-04 16:27:49 +08:00 · 10128 次点击
    这是一个创建于 1232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是同时请求的资源太多,http1.1 加载嫌慢

    30 条回复    2020-12-05 15:35:43 +08:00
    skai0dev
        1
    skai0dev  
       2020-12-04 16:30:41 +08:00 via Android
    生成证书的时候在 DNS 里加上你的 IP
    37Y37
        2
    37Y37  
       2020-12-04 16:35:58 +08:00
    咋不用域名呢?我们有个代理,统一走走代理,很方便
    https://blog.ops-coffee.cn/s/FV379mGIboVYky73kcoMMQ
    LGA1150
        3
    LGA1150  
       2020-12-04 16:36:05 +08:00
    随便一个自签证书不就行了
    qwerthhusn
        4
    qwerthhusn  
       2020-12-04 16:40:12 +08:00
    1. 自签名证书,不过客户端不信任,如果只是浏览器访问,可以直接忽略证书。如果是程序或者其他东西,可能麻烦些
    2. 申请一些二级甚至三级域名的证书,然后需要自建一个 DNS,把域名映射到指定的内网 IP,然后让用户通过域名访问

    HTTP2 一般是和 SSL 绑定到一块的,没法直接 HTTP 协议访问 HTTP2
    jfcherng
        5
    jfcherng  
       2020-12-04 16:47:40 +08:00
    Windows 的話可以無腦 https://github.com/FiloSottile/mkcert
    HelloWorld556
        6
    HelloWorld556  
       2020-12-04 16:48:12 +08:00
    jfcherng
        7
    jfcherng  
       2020-12-04 16:48:13 +08:00
    唉不對 發現是三個平台都有...
    learningman
        8
    learningman  
       2020-12-04 16:50:50 +08:00 via Android
    h2c,了解一下
    testcaoy7
        9
    testcaoy7  
       2020-12-04 16:53:40 +08:00
    自签证书。然后把 CA 证书下发到客户端装上。
    lshero
        10
    lshero  
       2020-12-04 16:54:39 +08:00
    有的公司内部系统都是统一用域名做反向代理,然后顺带每个 html 页面都插入水印防止截屏
    msg7086
        11
    msg7086  
       2020-12-04 17:04:06 +08:00   ❤️ 1
    局域网内加 IP 证书不可信。你要么配置域名然后用 DNS 认证来签发内网证书,要么自签然后把 CA 部署到客户端电脑上。一般这个域里就能搞。
    ryanlid
        12
    ryanlid  
       2020-12-04 17:12:50 +08:00   ❤️ 1
    局域网速度慢,不是 http 的问题,找找其他原因吧
    darknoll
        13
    darknoll  
    OP
       2020-12-04 17:18:02 +08:00
    @ryanlid 主要是前端写得差,同时请求的资源数太多,比如一次性发十几个请求获取配置文件啥的
    kingfalse
        14
    kingfalse  
       2020-12-04 17:33:38 +08:00
    自签,浏览器装证书
    youla
        15
    youla  
       2020-12-04 17:45:17 +08:00   ❤️ 1
    hosts 搞个域名指向 IP 再自签证书吧,我记得 IP 貌似不能 https 的,以前尝试过没成功。
    GTim
        16
    GTim  
       2020-12-04 17:46:48 +08:00 via iPhone
    如果用域名,更简单的是直接解析内网,然后用一个垃圾子域名去获取 let's 证书
    execute
        17
    execute  
       2020-12-04 17:50:58 +08:00
    @youla IP 是可以签发证书的,例如: https://1.1.1.1/
    ipixeloldc
        18
    ipixeloldc  
       2020-12-04 17:55:19 +08:00 via iPhone
    @youla 公网的 IP 能签,很多 CA 都有卖的...内网的就麻烦了
    Showfom
        19
    Showfom  
       2020-12-04 17:55:21 +08:00   ❤️ 1
    @execute 内网 IP 不可以签发商业证书
    longaiwp
        20
    longaiwp  
       2020-12-04 18:23:40 +08:00
    先自签证书看看到底有没有用,能提升多少,再来解决这个问题。
    jim9606
        21
    jim9606  
       2020-12-04 19:00:54 +08:00
    证书的话建议用私有 CA,mkcert/openssl/xca 都可以,建议用 ECDSA 的证书。
    不建议用裸 IP 证书,就算是只在内网用也建议用公开的域名,方便日后迁移。
    ryanlid
        22
    ryanlid  
       2020-12-04 22:09:28 +08:00   ❤️ 2
    http://http.oonnnoo.com/

    试验了一下,http1.1 的 http 请求 与 http2 的 https 分别 361 个请求,最后加载速度基本是差不多的
    KuroNekoFan
        23
    KuroNekoFan  
       2020-12-04 22:14:27 +08:00 via iPhone
    windows 的话加了域可以推送策略的话应该好搞吧
    imdong
        24
    imdong  
       2020-12-04 22:17:04 +08:00
    注册域名,为域名申请数字证书。

    如果能连接外网,域名直接解析到对应的内网 IP 上。

    如果不能连接外网,改 hosts 可行,或者 mDNS 之类的广播,或者自建内网 DNS 。

    或者就楼上说的 私有 CA 了,客户端需要信任才行。
    Tonni
        25
    Tonni  
       2020-12-04 23:54:22 +08:00 via iPhone
    mkcert
    baobao1270
        26
    baobao1270  
       2020-12-05 00:13:00 +08:00
    方案 1:拿个域名,用 DNS 方式申请证书,把域名解析到内网 IP
    方案 2:同方案 1,但是在内网建立 DNS 服务器,比如 192.168.1.1.lan 解析到 192.168.1.1
    方案 3:自签名证书,在 SAN (备用可选名称)上加上 IP=192.168.X.X (不允许通配符),现在的 Chrome 不允许用 DNS Name 或者 CN 替代 IP SAN 。详情请谷歌 /百度。
    方案 4:自签名证书,CN 填*,除了一些老的浏览器,都不支持
    eudore
        27
    eudore  
       2020-12-05 08:59:40 +08:00
    只能自签或双向 tls,内网用 http/1.0 就可以了。
    说 h2c 的怕是连 h2 握手流程都不清楚,h2 握手依赖于 ssl 层。
    a1274598858
        28
    a1274598858  
       2020-12-05 10:10:40 +08:00
    自签证书,操作系统信任这个根证书...
    我这个地址就是自签三级证书。https://testssl.jiedanba.cn/#/pages/login/login
    polymerdg
        29
    polymerdg  
       2020-12-05 10:49:29 +08:00
    域名+DNS 服務器吧
    sobigfish
        30
    sobigfish  
       2020-12-05 15:35:43 +08:00 via iPhone
    用三级域名表示每一个内网机器 比如 192.168.1.1 的域名
    16 进制为 0xC0A80101.example.com 或者整数的 3232235777 这样子一个通配符证书就够了
    但貌似解决不了子网设备改 IP 冒充其他 IP 的问题😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   926 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:14 · PVG 06:14 · LAX 15:14 · JFK 18:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.