问题标签 [sni]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4228 浏览

android - Https连接,Android 2.3和4的区别

我正在开发一个从不同服务器(http 和 https)检索图像的项目。

我发现这个有用的 Q/A可以避免No peer certificate errorAndroid 2.3 中的问题,但我不明白为什么在 Android 4 (>3) 中这个问题 (" No peer certificate error") 没有出现。

如果我错了,请纠正我:

  • 在 Android 2.3 中,HTTPS 连接执行整个证书检查(和握手);
  • 在 Android > 3 中,即使握手失败,也会建立 HTTPS 连接(例如:我的应用程序,作为对等方,没有证书)。

这些版本的Android有什么区别?为什么我需要全部信任Android 2.3 而不是 Android 4?

为什么在 Android 2.3 中我收到以下异常:"javax.net.ssl.SSLPeerUnverifiedException: No peer certificate error" 而在 Android 4 中一切正常并且已建立连接?

是否与Android Honeycomb中引入的SNI Server Name Indication相关的所有内容?

0 投票
1 回答
1014 浏览

apache - 如何使没有证书的 apache SNI 主机重定向到 http 地址?

我有一个具有多个命名主机的 apache 服务器,所有这些主机都可以正常工作于端口 80 http 流量。(具有唯一 IP 地址的 VPS)

我有一个具有 SSL 证书的域,并且该域被配置为同时处理 http 和 https 流量。

但是,如果有人不小心将 https 添加到未配置 SSL 的 URL 的开头,我会收到典型的证书警告错误(预期),然后如果用户接受错误(取决于浏览器),它会显示我配置的 SSL 站点而不是原始的非 ssl 域。

我已经阅读了一些关于 SNI 的内容,但我没有其他每个域的证书,并且希望服务器要么不响应除一个特定域之外的任何其他域的 SSL 请求,要么重定向到 http 版本的地点。

请就我如何处理这个问题提出建议。

亲切的问候,斯宾塞

0 投票
1 回答
654 浏览

ssl - 将 pip 与“不安全”的 mercurial 一起使用

是否可以将 pip 与要求文件一起使用以从 Mercurial 存储库安装,该存储库需要使用 --insecure 访问才能工作。

存储库是通过 SSL 访问的,并且由于 pip 忽略服务器名称指示 (SNI),因此无法使用有效的 SSL 证书(它使用主证书作为 IP 地址)。--insecure 解决了这个问题

IE:

所以你通常可以在哪里做这样的事情:

或在 pip 要求文件中有以下内容:

由于 SSL SNI 问题,这些都不起作用。

有人有什么好的建议吗?

0 投票
2 回答
1086 浏览

c# - 在 AuthenticateAsServer 之前读取 ClientHello

我正在开发一个需要管理不同 SSL 服务的服务器应用程序。每个服务都有自己的证书(当然,有不同的 CN)。我想使用SNI来提供正确的证书,但是在对流进行身份验证之前,我正在努力阅读 ClientHello(SNI 扩展所在的位置)。

那是代码:

如果我直接使用前缀证书进行身份验证,则没有问题,但是当我尝试在身份验证之前从流中读取一个字节时,它会在 AuthenticateAsServer 方法中永远循环。

0 投票
4 回答
5502 浏览

ssl - buildout/easy_install/setup_tools 是否验证 SSL 证书?

我正在尝试诊断此错误:

它发生在 Chef + buildout 安装堆栈的深处。我发现的一件事是,如果我尝试直接访问 buildout-versions 包:

我可以从我的桌面正常访问该文件。所以我怀疑代理(由一所大学提供,这个服务器必须使用它来访问网络)。它设置为https_proxy=...

这是构建失败的可能原因吗?有什么办法吗?

0 投票
1 回答
760 浏览

java - HTTPSURLconnection 和 Apache(系统)DefaultHttpClient 之间的证书链不同

我在 Apache HTTPS 客户端面临一个奇怪的问题。我正在尝试连接到启用了基本身份验证的外部 HTTPS 网站(仅限 SSL 服务器身份验证)。这是我的测试和结论的摘要。

  • 使用 Chrome/Firefox/IE 中的任何一个连接到网站 -> 成功

  • 使用javax.net.ssl.HttpsURLConnection-> 成功

  • 使用DefaultHttpClientSystemDefaultHttpClient-> 失败

我尝试通过将“javax.net.debug”启用为“ssl”来进行调试。我注意到两个客户端都选择了相同的信任库(默认 JDK 信任库)并使用相同的协议(TLSv1)。但是,差异就在这里

我注意到JDK返回了以下扩展名

扩展 server_name, server_name: [host_name: websitehostname]

而 Apache Web 客户端调试日志中缺少上述扩展。

另外,我看到的另一个区别是证书链

以下来自 JDK native 的响应

* 证书链链 [0] = [ [ 版本:V3 主题:**CN=websitename , OU=域控制验证 - RapidSSL(R), OU=参见 www.rapidssl.com/resources/cps (c)13, OU =GT17702541,序列号=Q2La1fpFlFdNy4kUCIehYlMvw6bq64Ch 签名算法:SHA1withRSA,OID = 1.2.840.113549.1.1.5

在apache客户端中,以下

链 [0] = [ [版本:V3 主题:EMAILADDRESS=root@i4319, CN=i4319,OU=SomeOrganizationalUnit,O=SomeOrganization,L=SomeCity,ST=SomeState,C=-- 签名算法:SHA1withRSA,OID = 1.2 .840.113549.1.1.5

显然我得到了 apache https 客户端的以下异常。

在我回去重做工作以使用 JDK 本地客户端之前,我想知道发生了什么。对此行为的任何见解将不胜感激。

0 投票
3 回答
12310 浏览

apache - Apache SNI:一个 IP 地址上的多个 SSL 证书

今天我正在尝试将 Apache 配置为运行两个域,每个域都有自己的 SSL 证书。根据我的阅读,只要我的 Apache 配置了最新版本的 OpenSSL,SNI 就支持这一点。我验证它是:

我以为我已经成功设置了第二个域和证书,​​但是当我尝试在 chrome 中访问第二个域时,出现以下错误:

这篇文章似乎最接近我的问题:

在 apache 上托管多个 SSL 证书

但据我所知,我的服务器已经正确配置(显然不是!)

对于 example2.com,我的 conf 文件中有以下指令

在我看来是对的。那么为什么当我访问 example2 时 apache 会提供 example1 的证书?

0 投票
1 回答
668 浏览

ssl - Glassfish v4 是否支持 SSL SNI?

我想通过运行 Glassfish v4 在我的 VPS 上提供虚拟主机服务。这意味着多个域具有一个 VPS 的共享 IP 地址。我知道一个 IP 的多个域的 SSL 证书存在问题,并且 SNI 扩展可以解决这个问题(对吗?)。所以我的问题是,Glassfish 是否支持这一点。

谢谢

0 投票
1 回答
9353 浏览

apache - XP 上的 IE 不支持 SNI 允许单个服务器的多个证书

我一直在寻找几个小时来找到我的问题/问题的解决方案,虽然我相信我已经能够澄清我遇到问题的原因,但我一直无法找到解决方案。

我有一台服务器托管多个网站,其中几个网站正在使用 SSL 证书。我有一些所有站点都可以访问的共享图像,并且阻止 SSL 站点上的非安全错误的方法是从https://www.example-shared-image-server.com/images/imagename提供这些共享图像。 jpg

这工作得很好,直到我注意到在 Windows XP 上使用 Internet Explorer 时,它会给出消息“此网站的安全证书存在问题”。然后我确定这是因为它为服务器上的不同域获取证书。这与使用 SSL 证书在一台服务器上托管多个站点有关。

假设我有四个站点,只有前两个站点安装了 SSL 证书。

并且不要忘记以下内容:

因此,当从上述共享图像 URL 访问图像时,它实际上会显示https://www.one.com,因此会出现错误。

因此,它似乎与 IE 在 Windows XP 或 Vista 上不支持 SNI 或 SSL/TLS 有关,而它在 Win 7 和 Win 8 上。这似乎是 M$ 迫使人们升级到最新操作的直接策略系统。但事实是所有其他浏览器都支持它。

但是,我无法确定的是我能做些什么。所以我相信我的问题是,是否可以在不同域的同一服务器上使用 SSL 托管多个网站而不会导致 IE 显示错误。如果不是,其他人会怎么做?是的,我该如何配置它?

我已经为此工作了几个小时,所以如果有人可以提供帮助,我将不胜感激。

非常感谢,

0 投票
1 回答
476 浏览

apache - 在托管多个 vhost 条目的单个服务器上避免 SNI for SSL

我试图在一个 IP 地址上托管 2 个站点,它们需要通过 SSL 访问,但是我的大多数用户在 Windows XP 上使用 Internet Explorer,这意味着使用多个 SSL 和 SNI 可能会阻止他们访问。

我想知道是否可以使用多个虚拟主机但仍使用单个 SSL 证书并避免 SNI ?

或者,我安装两个 Apache 网络服务器实例有多可行,每个实例都有自己的 DocumentRoot 和自己的 SSL 证书,而我只需使用第一个 Apache 网络服务器作为入口点来处理一些请求并将其他请求重定向到另一个 SSL Apache 实例?

我是否可以使用 Windows 主机文件(Windows 2008 Server)将传入请求重定向到预期的 Apache 服务器,而不是使用 VirtualHosts?

抱歉,如果我有混淆的概念。