本地主机或127.0.0.1的第三方签名SSL证书?
在不泄露太多信息的情况下,我需要设置一个web服务器系统,供互联网上的最终用户使用 用例是这样的:本地主机或127.0.0.1的第三方签名SSL证书?,ssl,ssl-certificate,embeddedwebserver,Ssl,Ssl Certificate,Embeddedwebserver,在不泄露太多信息的情况下,我需要设置一个web服务器系统,供互联网上的最终用户使用 用例是这样的: 连接到系统时,最终用户(通常)在其本地防火墙后面的家中 该系统由我们托管的远程服务器组成,严格通过https(使用SSL)运行 授权机制要求在远程服务器上自行创建用户帐户,在成功创建帐户后,将需要下载一个软件并安装到最终用户的计算机上。该软件包括一个本地Web服务器 此“本地”Web服务器还必须只允许https连接到用户的浏览器 由于分布式软件将是每个用户机器上唯一的web服务器,因此我不确定
- 连接到系统时,最终用户(通常)在其本地防火墙后面的家中李>
- 该系统由我们托管的远程服务器组成,严格通过https(使用SSL)运行
- 授权机制要求在远程服务器上自行创建用户帐户,在成功创建帐户后,将需要下载一个软件并安装到最终用户的计算机上。该软件包括一个本地Web服务器李>
- 此“本地”Web服务器还必须只允许https连接到用户的浏览器李>
这可能吗?也许您可以让我们了解(其他CA提供类似的服务)。简言之,该产品允许您拥有一个CA证书(并为localhost/任何内容注册最终用户证书),该证书将由GlobalSign certificate签名。不过,成本可能很大(我相信他们是根据具体情况来确定的) 我也有同样的要求。因此,您必须使用SSL的原因是,如果您使用https并尝试连接到http资源(即使http资源位于localhost上),几乎每个浏览器现在都会呕吐,这对我来说很愚蠢 由于JS SOP,我们的localhost web服务器提供一个JS文件,然后webapp中的JS可以调用这个localhost web服务器 因此,我们让local.example.com指向127.0.0.1,并为这个主机名购买了一个SSL证书。然后,我们将私钥放在这个安装在用户计算机上的web服务器中。是的,我们疯了 所有这些实际上都非常有效。我们已经这样运行了大约6个月,有几百个用户 我们有时遇到的唯一问题是,当用户使用代理服务器时,这种方法无法正常工作。请求被发送到代理服务器,它试图连接到代理服务器上的127.0.0.1,这显然不起作用。解决方法是将排除添加到代理服务器配置中,以便它绕过代理服务器以请求local.example.com 另一个有点棘手的场景是当用户尝试使用Citrix或终端服务时。您必须确保每个用户的web服务器在不同的端口上运行,然后将端口号告知远程web服务器,以便服务器上生成的页面具有正确的端口号。幸运的是,我们还没有遇到这个问题。现在似乎越来越多的人使用虚拟机而不是Citrix 你有没有找到更好的方法?localhost 您将永远不会获得本地主机的正确https证书。它是。因为 简言之:
- 实际上,在野外存在配置错误的设备,它们在从
解析localhost之前等待查找/etc/hosts
- 如果路由器定义了
,它可能会导致localhost.foo.local
解析错误(您以前可能见过此类错误)localhost
- 看
localhost
cert,我按照Eugene的建议,在公共域上创建一个127.0.0.1记录
通过让我们通过加密,您可以免费获得localhost.YOURSITE.com
的HTTPS证书。只需选择DNS选项而不是HTTP文件上载选项
将localhost.MY-SLD.MY-TLD指向127.0.0.1
- 购买
证书,并为每个安装颁发一个秘密*.localhost.example.com
(并将其包含在公共后缀列表中,以防止对example.com的攻击)xyz.localhost.example.com
- 用于直接在客户端上动态(通过)生成此类证书(或将其传递给客户端)
- 会话、本地存储、indexeddb等由域共享
- 更改端口不会改变它们的共享性
这可能是一个非常糟糕的主意,因为我们不希望用户习惯于随意安装根CA(我们知道这一点),但对于公司/克隆计算机来说,这可能是一个合理的低预算选项。因为您在本地主机上,您可以告诉浏览器信任您想要的任何证书 为localhost创建一个自签名证书,并告诉您的浏览器信任它。works fine提供的解决方案“将您的localhost.MY-SLD.MY-TLD指向127.0.0.1”,您可以在此处看到更详细的解释:
PS:我只是不知道这有多可持续,因为他们的密钥被CA吊销了,就好像密钥被泄露了一样 这是否意味着我必须创建自己的CA才能工作?@Rimer为了避免客户端出现浏览器警告,您需要构建一个受信任的证书链,即部署的web服务器(将在客户端运行的服务器)中使用的证书必须