域名未知的SSL证书

Dav*_*e G 5 ssl certificate

我们在使用SSL保护内部网/互联网网站时遇到问题,我们无法事先知道合格的域名.

基本上,我正在尝试制作一个程序,将安装在我的直接控制之外的网络服务器上,以便可以通过内部或互联网访问.在任何一种情况下,我希望它通过SSL(https)安全.为此,我想在目标计算机上包含并安装SSL证书.我的安装程序已完全预先打包,不需要我的任何特定的安装期间或安装后的干预.问题是,我不能提前知道目标机器的名称或域名,因此我可以告诉SSL连接将在访问时返回警告(或更糟?),因为我包含的证书将(必须)有一个不同的名字.

我真的想避免这些警告,但我仍然希望保持安全.如果没有提前知道域名,有没有办法在没有证书警告的情况下安装SSL连接?

感谢您的帮助.

yfe*_*lum 9

你想做什么是不可能的.这就是原因.

证书将包括一组名称(公共名称,可能还有主题备用名称,可能包括通配符名称).

客户端的Web浏览器将执行以下操作:

  1. 用户想要访问" https://myapp.mydomain.com/blog/posts/1 ".
  2. 请求是通过SSL,请求中的域名是"myapp.mydomain.com".
  3. 从Web服务器获取证书.
  4. 确保证书中至少有一个名称与请求中的域名完全相同或通配符匹配.
  5. 显示页面.

因此,您需要一个证书,其中包含将使用该应用程序的确切域名(或与确切域名匹配的通配符).并且证书需要在知道网站的确切域名的同时或之后可用,并且不能在之前提供.

您似乎误以为证书可以"创建"或"安装"SSL连接.那是错误的.Web服务器 - Apache,IIS,Nginx,LigHTTPD或您碰巧使用的任何一个 - 是了解如何实现SSL连接的每个方面的程序.证书只是 Web服务器发送给客户端的文件,甚至无需以任何方式打开或使用.

此外,要分发的webapp的作者不负责创建或分发证书,也不应该误解他所负责的.只有网站维护者应负责获取其网站的证书.正如另一个人所说,在您的安装过程中或者在安装后的过程中,您可能会要求安装webapp的人员提供证书.但这是你能做的最好的事情.