- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想知道除了验证用户代理和猜测之外,是否有任何方法可以确定发出 HTTP 请求的浏览器是否支持 SNI。
我会考虑服务器端或客户端选项。
我想做的是为指向同一个 PHP 应用程序的多个域设置 SSL 证书。然后我会尝试找出发出请求的客户端是否支持 SNI,如果支持,则将他重定向到支持 SSL 的版本。
最佳答案
首先,我们知道目前支持SNI的浏览器有哪些:
歌剧 8.0;MSIE 7.0(但仅限于 Windows Vista 或更高版本);Firefox 2.0 和其他使用 Mozilla Platform rv:1.8.1 的浏览器;Safari 3.2.1(Windows 版本在 Vista 或更高版本上支持 SNI);Chrome(Windows 版本也支持 Vista 或更高版本的 SNI)。
所以一个廉价的方法是确定浏览器,如果是以上之一,它有 SNI。
虽然这不是最佳实践(优先于特征检测),但似乎没有办法避免它,因为 SNI 检测需要 SSL 握手。因此,在您的 SSL 证书失败后再做一些事情已经太晚了。
关于php - 检测浏览器的 SNI 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363948/
我正在为驻留在同一台服务器上的不同域设置多个不同的 SSL 证书(因此共享相同的 IP 地址)。 与 Qualys SSL Test我发现有些客户端(即 BingBot as of december
我们想在连接到各种外部端点 (SOAP/REST) 的 PHP 客户端中启用 SNI(服务器名称指示)。其中一些端点支持 SNI 作为服务器,但有些不支持。在所有传出请求上启用 SNI 会导致不支持
浏览器是当前的 Chrome 或 FF。在服务器 apache 2.2ish 上。 我启用了许多 SNI 站点 - 虚拟主机 *.443 等。所有单独的配置文件。一切正常。 如果我在浏览器中导航到这些
AWS 网络负载均衡器 support TLS termination .这意味着可以在 AWS Certificate Manager 中创建证书并将其安装到 NLB,然后使用 TLS 加密的 TC
我正在尝试验证 TLS 客户端是否检查服务器名称指示 (SNI)。 我首先尝试使用 openssl 重现这些步骤。 我试图用这个 openssl 命令连接到谷歌 openssl version ope
我知道 Tomcat 提供 SNI 和相互身份验证,但是否可以只为选定的应用程序/路径启用 MA? IE。假设我的服务器上有以下应用程序/端点: /app1 /app2/human /app2/rob
如何使用 C 或 C++ 在 OpenSSL 上实现服务器名称指示 (SNI)? 是否有任何现实世界的例子可用? 最佳答案 在客户端,您使用 SSL_set_tlsext_host_name(ssl,
在我们的系统中,虚拟主机配置存储在redis中。在连接设置期间,当收到 SNI 时,我们想查询 redis 以获取用于 TLS 连接的正确证书和 key 对,并创建一个附加的新 Context 实例。
我在使用 Apache HttpClient (4.5.2) 的 Java 8 上遇到此错误: javax.net.ssl.SSLProtocolException:握手警报:unrecognized
我有一个 Web 服务 (asmx) API,它是由我管理的另一位开发人员用 .NET 3.5 编写的。我们最近从 Server 2008R2 迁移到 Server 2012R2,我决定使用 SNI
我们托管了数十万个域。我们希望在单个 I.P. 上为所有这些提供 SSL/TLS。显然,SNI允许我们这样做。但是,这表明我们的 SSL 终止服务器上实际上有成千上万个证书。 对于可以安装在 SNI
有没有办法在现代浏览器中暂时禁用 SNI? 例如测试老客户的网站可用性。 (自从 POODLE 以来,人们应该担心他们吗?) 最佳答案 可能测试老客户可用性的最佳方法是实际试用老客户。 Microso
我在这里拉扯我的头发。像 wix.com 这样的网站, squarespace.com ...ETC;可以即时生成网站,并且仍然在数百万自定义域中的每一个上使用 SSL。 我尝试做同样的事情,但我不知
我可以找到有关 SNI 的各种信息(请参阅 Wikipedia ),但我找不到有关浏览器实际支持的任何统计信息。 我能找到的最好的结果是它应该可以在带有 SP3 的 Windows XP 上运行。 有
Java 7 带来了 client support for SNI .是否有已知的 SNI 服务器角色的开源实现? Java 提供“透明支持”TLS 连接(包括握手),但我需要解耦握手过程,以便我可以
如何使用 C 或 C++ 在 OpenSSL 上实现服务器名称指示 (SNI)? 是否有任何现实世界的例子可用? 最佳答案 在客户端,您使用 SSL_set_tlsext_host_name(ssl,
我遇到了一个我不理解的 Java SNI SSL 行为。在 Java 中使用 SNI 时,我希望 Google 不会为无效的主机名提供任何证书,但它确实提供了。 KeyStore keystore =
我有一个站点,其中有由 letsencrypt 创建的 ssl,但是没有 sni ssl 存在问题。它配置好吗? https://www.ssllabs.com/ssltest/analyze.htm
Java 6 可以使用 TLS + SNI 吗? TLS 与 java 6 配合得很好,但似乎不支持 SNI。 Java 7 及更高版本可以正常工作。但我坚持使用 Java 6。 Java 6 adv
我已经使用 SNI 在我的网站上实现了 SSL。现在我知道旧浏览器不支持 SNI 功能。我要问的是,当用户尝试使用不支持 SNI 的浏览器访问我的网站时,是否可以将用户重定向到其他登录页面。 请建议我
我是一名优秀的程序员,十分优秀!