域名未知的SSL证书
我们在使用SSL保护intranet/internet网站时遇到问题,其中 我们不能预先知道合格的域名 基本上,我正在尝试制作一个安装在Web服务器上的程序 在我的直接控制之外,可以通过内部或互联网访问。无论如何 我希望它是通过SSL(https)安全的。为此,我想包括和 在目标计算机上安装SSL证书。我的安装程序已完全预打包 并且不应要求我的客户在安装期间或安装后进行任何特定的干预 结束。问题是,我无法提前知道目标机器的名称或域 名称,据我所知,SSL连接将返回警告(或 更糟?)因为我包含的证书将(必须)具有不同的 名字在上面 我真的很想避免这些警告,但我仍然想保持安全。有 在没有域的情况下安装没有证书警告的SSL连接的任何方法 名字提前知道了吗域名未知的SSL证书,ssl,certificate,Ssl,Certificate,我们在使用SSL保护intranet/internet网站时遇到问题,其中 我们不能预先知道合格的域名 基本上,我正在尝试制作一个安装在Web服务器上的程序 在我的直接控制之外,可以通过内部或互联网访问。无论如何 我希望它是通过SSL(https)安全的。为此,我想包括和 在目标计算机上安装SSL证书。我的安装程序已完全预打包 并且不应要求我的客户在安装期间或安装后进行任何特定的干预 结束。问题是,我无法提前知道目标机器的名称或域 名称,据我所知,SSL连接将返回警告(或 更糟?)因为我包含的证
感谢您的帮助。每个站点都应该有自己的SSL证书。为什么不在安装过程中提示用户提供证书文件?您最好购买一个通配符SSL证书-但是等等,这不是您所想的。您仍然需要提前知道第二级域(TLD是“.com”)。你可以有效地申请一个涵盖*.foo.com的证书,然后任何网站,a.foo.com,b.foo.com都将被覆盖。当然,这些证书比FQDN证书更昂贵,因为你正在用一些额外的硬币来对付窃听者 -在大多数(如果不是全部)情况下,SSL证书与Web服务器(apache、IIS等)关联,并且不是应用程序的一部分。由web服务器的管理员安装证书,而不是由您作为程序的作者
如果您的安装程序确实能够修改web服务器配置,并且您愿意让它使用自签名证书,则可以编写证书创建脚本以允许输入域名。然而,我感觉这对你来说并不是真的可用。此外,自签名证书通常会导致证书警告。您想做的事情是不可能的。原因如下 证书将包括一组名称(公共名称,可能与使用者备选名称一起,可能包括通配符名称) 客户端的web浏览器将执行以下操作:
此外,要分发的webapp的作者不负责创建或分发证书,也不应误解为他有责任。只有网站维护人员应负责为其网站获取证书。正如另一个人所说,在您的安装过程中,或者在安装后的过程中,您可以向安装webapp的人索取证书。但这是你所能做的最好的了。如果我没有弄错的话,你的问题现在可能有解决办法了。但是,如果您无法控制指定从安装程序的web服务器(如其他人所述)提供哪些SSL证书,则此解决方案将不会对您有所帮助。如果程序本身包含web服务器,则不会出现此问题 如果从受信任的https网站开始,则可以对运行应用程序的web服务器进行跨域TLS(SSL)XmlHttpRequests。这是通过使用OpenSourceForge项目实现的。该项目使用一个用JavaScript编写的TLS实现和一个小型Flash swf来处理跨域请求。您的程序将需要提供一个XML Flash策略文件,该文件授予受信任网站对运行应用程序的web服务器的访问权限 您的程序还需要生成自签名SSL证书并将其上载到受信任的网站。从那里,每个程序的证书都可以通过JavaScript TLS实现作为受信任的证书包括在内。或者,您可以让您的程序上载其证书,由您创建的CA签名,使用适合您使用的通用或主题替代名称(不必是域名)。然后,您可以使用JavaScript信任CA证书,并在每个证书上查找正确的名称 有关更多详细信息,请查看github上的Forge项目:
最后的博客文章链接提供了有关其工作原理的更深入的信息。避免警告的方法是从证书颁发机构购买证书。他们不会在不知道域名的情况下向您颁发证书(至少是第二级,例如example.com)。如果不是网站,而是RPC的内部IP端点,该怎么办?