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

关于 Https 证书验证问题

  •  
  •   z1gui · 14 天前 · 2133 次点击
    访问系统用的 https ,在系统某个页面需要加载一个其他服务商提供的 http://xxx.xxx/demo.js 。我想到的方法是通过 nginx 把 http 服务转换成内服服务器上 https 服务,然后然后页面加载内部服务器的 https 。现在有个问题,因为是自签证书,每次页面加载时候就显示不安全连接,需要点击一下才能正常加载。我不太懂证书认证这方面问题,请问大佬有什么方式不弹出不安全连接的提示,直接加载页面呢?
    21 条回复    2025-04-13 02:51:33 +08:00
    XiLingHost
        1
    XiLingHost  
       14 天前
    把用于签名的证书的根证书加入本机的可信任 CA 就行了
    CnpPt
        2
    CnpPt  
       14 天前
    别把别人的 js 转成内网 https 啊,要么转成公网带证书的,要么 js 直接下载放本地路径加载
    viking602
        3
    viking602  
       14 天前
    手动信任证书就好了
    z1gui
        4
    z1gui  
    OP
       14 天前
    @XiLingHost 签名证书添加到访问机器的可信任 CA 么,访问机器有很多呢,怎么办呢

    @CnpPt 其他服务商也是内网环境,不会在公网暴露,下载 js 到本地就怕对端有更改
    galenzhao
        5
    galenzhao  
       14 天前
    @z1gui 你现在不就是 访问时候手动么,那现在机器多么
    ajan
        6
    ajan  
       14 天前
    z1gui
        7
    z1gui  
    OP
       14 天前
    @galenzhao 访问时候手动,但是系统面向内部用户,每个用户访问的机器不同,有很多机器的
    pony2335
        8
    pony2335  
       14 天前
    内网还要上 https 纯折磨啊
    psllll
        9
    psllll  
       14 天前
    改 hosts 把域名劫持到本地局域网 ip ,然后就能用这个域名证书了
    xlzyxxn
        10
    xlzyxxn  
       14 天前
    自签证书必须要用户自己确认承担风险吧,你想实现的东西和那些做监控 APP 的没啥区别
    yinmin
        11
    yinmin  
       14 天前 via iPhone
    内网服务器也可以部署互联网 https 证书的,买一个 1 年期商业证书部署在内网服务器上就可以了
    z1gui
        12
    z1gui  
    OP
       14 天前
    @pony2335 确实,一方面集团要求,另一方面,系统是 https ,访问不了 http 的 js 吧(这个情况我没试过

    @psllll 我理解的劫持是不是跟 nginx 转一下的作用是一样的?

    @xlzyxxn 是的,不过内网系统,服务商也是内部的,基本上不存在风险,应该是
    psllll
        13
    psllll  
       14 天前
    @z1gui #12 就是你把域名给解析到本地 ip ,比如 1.1.com 解析到 182.168.1.3 ,如果不能改 hosts ,可以自建 dns 服务器,这个自行谷歌百度
    然后给你的 nginx 配置证书和域名,参考
    ```
    server {
    listen 443 ssl;
    server_name 1.1.com;

    ssl_certificate fullchain17.pem;
    ssl_certificate_key privkey17.pem;
    ```
    这样你访问 1.1.com 就能访问到本地 ip 了,而且还有域名证书默认信任
    cnrting
        14
    cnrting  
       14 天前 via iPhone
    把這個 js 放到你的機器上不就行了
    jim9606
        15
    jim9606  
       14 天前 via Android
    内网其实不影响你用公开域名和商业证书/LetsEncrypt 免费证书的,为了方便自动续期,一般会有一个只供内网开放的反代网关负责 https 包装,使用通配符证书。
    现在不少开发工具都默认要 https 的,尽量别这么设计内部系统给自己添麻烦。
    liuidetmks
        16
    liuidetmks  
       14 天前
    @pony2335 浏览器有些 api 必须要 https 才能用的
    expy
        17
    expy  
       14 天前
    内网也可以用正规证书啊,用 dns 验证就好了。

    https://letsencrypt.org/docs/challenge-types/#dns-01-challenge
    realpg
        18
    realpg  
       14 天前
    @z1gui #12
    什么供应商连个 https 都没有
    这是当乙方的态度吗
    hanyuwei70
        19
    hanyuwei70  
       14 天前
    如果没有什么奇怪的安全合规需求的话,直接部署 LE 的证书就行了。
    比如你的内部域名是 a.example.com ,在公网用 dns 验证方式弄一个 a.example.com 的证书,然后部署进内网即可。自己做好自动化。
    UnluckyNinja
        20
    UnluckyNinja  
       14 天前 via Android
    1. 直接把这段 js 打包进你的前端页面里,别用 script 标签引用的方式
    2. 用 Let's Encrypt 等免费证书来签名
    esee
        21
    esee  
       12 天前 via Android
    内网不影响使用正规证书,dns 申请一个泛域名证书,内网 dns 做个解析。这样就不用每个机器都配置了。我们就是这么用的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2638 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:03 · PVG 23:03 · LAX 08:03 · JFK 11:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.