Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser 如何使浏览器信任具有用户友好提示的自签名证书?_Browser_Certificate_Trust - Fatal编程技术网

Browser 如何使浏览器信任具有用户友好提示的自签名证书?

Browser 如何使浏览器信任具有用户友好提示的自签名证书?,browser,certificate,trust,Browser,Certificate,Trust,以下是场景: 网站A通过HTTPS从公共域example.com提供服务 网站A需要通过WebSocket访问服务B。因此,websocket也需要是安全的,即wss:// 服务B当前不安全。我正在尝试保护它,我需要为它生成一个证书 服务B只能从内部网获得。WSS URL以wss://192.168.x.x(通过IP和NAT进行连接)。是的,这也意味着A只能从内部网充分使用,尽管通过internet提供的功能有限。然而,典型的情况是使用内部网 连接到网站A的计算机不在windows域中,并且当前

以下是场景:

  • 网站A通过HTTPS从公共域
    example.com
    提供服务
  • 网站A需要通过WebSocket访问服务B。因此,websocket也需要是安全的,即wss://
  • 服务B当前不安全。我正在尝试保护它,我需要为它生成一个证书
  • 服务B只能从内部网获得。WSS URL以
    wss://192.168.x.x
    (通过IP和NAT进行连接)。是的,这也意味着A只能从内部网充分使用,尽管通过internet提供的功能有限。然而,典型的情况是使用内部网
  • 连接到网站A的计算机不在windows域中,并且当前不信任任何可由我们控制的证书颁发机构。换句话说,我们无法创建所有这些计算机默认信任的证书。为此,我们需要与一个大家都信任的大型公共机构合作,但我怀疑他们是否会为NAT IP地址颁发证书
  • 问题是:

    由于我无法创建默认情况下所有计算机都信任的证书,因此我最好创建一个自签名证书并使用它来保护websocket。然而。。。我不确定会发生什么。我认为,要么用户每次连接时都会收到提示,要么连接会自动失败

    我可以在每台机器上手动安装证书,但这需要分别访问每台机器,如果有新人想访问该网站,我也需要记住在他们的机器上进行。不太好


    有什么好的解决办法吗?你能在网站上提示永久信任证书或其他什么吗?

    大多数浏览器都有一个内置的功能,可以永久信任未知的证书,坦率地说,我不会信任任何试图绕过这些机制的网站,即使它们是内部网站点。如果在访问内部网站时出现类似的情况,我更倾向于称之为支持,并询问该网站是否被篡改

    我会发布关于如何添加证书的说明(可能会注意到,在您的网站以外的其他网站上盲目添加证书可能会有问题),并处理无法遵循这些说明的情况

    另一种选择(尽管我个人没有这方面的经验)可能是获得一个免费证书,据我所知,大多数浏览器都会接受这个证书

    火狐:

    铬:


    目前,我正朝着我能想到的唯一解决方案的方向运行,我尝试的是让用户在Web服务器上单击一个按钮(创建一个弹出窗口),该服务器上有需要接受的证书。然后他们接受证书,我要求他们重新加载(或者通过单击相同的按钮重新启动代码),然后它应该能够工作。但是您需要在w

    上创建一个页面。问题是,网站本身已使用受信任的证书运行,但这一个websocket将使用不受信任的证书。浏览器是否会发出任何提示?在接下来的几天里,我将尝试测试这一点,但我怀疑它只会悄无声息地失败(好吧,“悄无声息”地出现Javascript异常,但对于仍然沉默的用户来说)。