目标: 如果用户支持SNI并点击myurl1.server.com(https)或myurl2.server.com(https),则会匹配正确的虚拟主机。 (最后2个虚拟主机) 如果用户不支持SNI并击中myurl1.server.com(https)或myurl2.server.com(https),它将被回退虚拟主机(第一个端口443)捕获。 它包含SAN证书,它会再次击中服务器以进行匹配。 这一次它会打到最后2个虚拟主机。 如果用户使用http或者httpsinput一个未知的URL,它将被捕获到显示错误页面的第一个虚拟主机中。 我testing了所有3个目标,它工作正常。 问题: 当用户正在点击SAN虚拟主机(https)向其发出新的请求时。 当SAN vhost中的proxypass使用http(80)时,Apache如何知道它将匹配最后2个虚拟主机(443) 当用户点击SAN vhost时,我看不到SAN访问日志中的任何请求。 这些请求只会出现在最后2个虚拟主机中,即使它通过SAN虚拟主机。 不过,我可以在SAN访问日志中看到一些bot请求。 代码只包含重要的部分。 NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80> show error page </VirtualHost> <VirtualHost *:443> SSLCertificateFile san.crt CustomLog san-access.log ProxyPass / http://my-local-url-server/ ProxyPassReverse / http://my-local-url-server/ </VirtualHost> <VirtualHost *:443> ServerName myurl1.server.com SSLCertificateFile myurl1.crt CustomLog myurl1-access.log ProxyPass / http://mybackend1/ ProxyPassReverse / http://mybackend1/ </VirtualHost> […]
我需要设置一个服务器,使用不同的域名通过SSL服务器上的相同内容。 问题是我需要能够尽可能轻松地添加新的域名。 假设所有的域名已经configuration到我的服务器,我猜是否有可能以某种方式设置nginx(或者可能是另一个反向代理),以便它将监听所有请求到特定的IP,并在获得HTTPS请求后尝试查找用于在某个文件夹或数据库中创build此请求的域的证书,并在发现证书(因此我们可以build立安全连接)时提供请求,或者如果找不到证书,则拒绝连接。 我不确定这是可能的,也许我正在考虑一些鲁莽的事情,但是因为我没有在网上find任何信息,所以我决定在这里问。 据我所知,最简单的解决scheme将是为每个应支持的域添加一个单独的configuration。
我正在使用RHEL 6,httpd-2.4.10,openssl-1.0.2a,并且已经安装了SNI,如http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI 每次我重新启动Apache我得到以下消息: AH00548:NameVirtualHost无效,将在下一版本中删除 是否有没有使用NameVirtualHost SNI设置?
我有一个“Windows Server 2008 R2”与“IIS7.5”,现在偶然发现,谈到SSL的话题:IIS7不支持SNI。 SNI如何改装?或者我怎样才能在WIN2008R2上安装“IIS8”(它支持SNI)? 这里我想要的要点是: IIS7.5 SNI改造? 或者我怎么能 IIS8在WIN2008R2上安装?
曾经有一个方便的网站http://sni.velox.ch会很快告诉你,如果你的浏览器或代理一路阻止你发送一个SNI头。 我有一个物联网设备,我可以访问任何网站(并看到文本输出) – 我只是想看看它是否正确发送SNI。 因为是GSM,所以不可能在本地分解tcpdump。
我想设置一个透明的HTTP / HTTPS代理来过滤基于目标主机名(域)的出站请求。 代理本身应该是非侵入性的,只是转发stream量,而不是解密/修改它。 在HTTPS的情况下,它应该使用TLS SNI扩展来解压主机名。 多个客户端将使用代理来访问多个主机,因此代理应该查看给定请求的客户端是否允许给定的目标主机名。 这是可能的鱿鱼(最好版本3.3.8)? 如果是这样,你能提供一个简单的例子configuration如何实现它? 如果不是的话,你能推荐能够做到的替代scheme吗? 附加信息: 应该运行代理的服务器是Ubuntu 14.04 stream量redirect被另一个路由器覆盖到该服务器的固定端口 代理应该像往常一样使用DNS来转发请求时parsing目标主机名 非常感谢!
看起来,在HTTPS连接上configurationHAProxy进行主机名路由时,至关重要的是包含一个tcp-request inspect-delay指令来“让HAProxy有机会查看连接”。 有没有办法让NGINX一样,或者我应该开始打包,并将我的整个服务器移动到HAProxy? (作为参考,这个问题来自我此前expression的误解) 编辑 迈克尔在评论中说: 他似乎希望从客户端的握手尝试中“嗅探”SNI,而不实际终止TLS连接,以便作出低层的连接代理决定,并盲目地将有效载荷传送到后续的terminal机,以终止TLS,因为某些原因,他不希望代理上的TLS证书和密钥,或代理完成TLS – 只需嗅探SNI,并使用从其内容派生的规则build立内部TCP连接。 理由是我需要后端应用程序中的证书和密钥(有些需要这个或那个原因),所以我必须提供给他们。 不得不在代理中设置它们本质上是维护工作的两倍,并且有可能出现错误。 如果我不能保持对代理证书的访问,就会使我的架构变得更容易,并减less错误的机会。
我需要使用基于名称的虚拟主机通过SSL托pipe一些Web应用程序。 如果所有站点都被SSL证书覆盖,那么Apache文档指出这是可能的( https://wiki.apache.org/httpd/NameBasedSSLVHosts )。 有没有一种方法可以将httpsstream量用于多个域名(如* .foo.com和* .bar.com)? 我看到有一个名为UCC的证书( http://support.godaddy.com/help/article/3908/what-is-a-multiple-domain-ucc-ssl-certificate )似乎正在做我正在寻找对于。 这可以用于我的目的吗? 还有其他更好的select吗?
我有许多由Haproxy提供SSL证书的域(使用Haproxy 1.5支持SSL)。 大多数情况下正确的证书正在服务,但是特定的用户不正确地接收默authentication书。 奇怪的是,他们在Windows 7上使用Chrome 22,这肯定是支持SNI的。 有没有人有任何提示,如何可以去诊断是什么造成这个,无论是服务器configuration或客户端的怪异。
当支持服务器名称指示(SNI)的Web浏览器连接到HTTPS站点时,是否始终在SNI字段中发送主机名? 也就是说,Web浏览器无法知道它所连接的HTTPS站点是唯一托pipe在主机名IP上的HTTPS站点,或者如果在该IP上发生了基于SNI的基于HTTPS名称的虚拟主机,正确? Web代理应该能够检查未encryption的SNI头,并根据主机名进行网站拦截,而不是像HTTPS站点那样根据IP地址进行阻止,对吧? 除了Windows XP上的IE6 / 7以外,所有主stream浏览器都支持SNI。 谢谢。