问题标签 [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.
python - 使用带有 TLS 的请求不会提供 SNI 支持
我正在使用请求与 django 应用程序进行通信,但是
当我尝试
我得到错误:
主机名“mysite.com”与“*.myhost.com”、“myhost.com”中的任何一个都不匹配
但是,当我查看浏览器或http://www.digicert.com/help/时,证书看起来又好又漂亮。
我的主人认为这是请求缺乏 SNI 支持(Github 似乎证实了这一点https://github.com/kennethreitz/requests/issues/749)。有没有人找到使用请求的解决方法?
ssl - 在 directadmin 中设置 SNI
我在 directadmin 中设置 SNI 时遇到了一些问题。我已将 enable_ssl_sni=1 添加到我的 directadmin.conf 中,但仍然出现此错误:
但是 SNI 背后的整个想法是您不需要分配拥有的 IP?
所以我的问题是,如何使 SNI 在 Directadmin 中工作。那 enable_ssl_sni=1 应该禁用检查,但它没有这样做。在http://help.directadmin.com/item.php?id=284我根本看不到 enable_ssl_sni 选项?
ssl - CloudBees 上具有多个 SSL 证书 (SNI) 的多租户应用程序
我正在使用 Play 框架构建一个多租户应用程序并使用 CloudBees 托管它。该网站的一个关键功能是能够在注册过程中代表我们的客户购买 SSL 证书。
- 注册时,用户向我们提供他们的自定义域名(即 customer.com)
- 我们创建客户帐户并将 customer.com 与他们的客户 ID 相关联
- 我们为我们的客户购买 SSL 证书并在我们的服务器上自动配置它
客户应该只需要担心将他们的域名指向正确的 IP 地址,而不是购买他们自己的 SSL 证书。
我们需要在运行时支持:
- 为典型请求解析http://customer.com或http://www.customer.com
- 如果客户端没有自定义域,则解析http://customer.ourdomain.com
- 在结算过程中为我们客户的最终用户解决https://customer.com/payment、https://www.customer.com/payment或https://customer.ourdomain.com/payment,具体取决于他们的域设置(子域或自定义域)
我试图弄清楚是否可以根据我们的 SSL 需求使用开箱即用的 CloudBees。我们假设 SNI 将满足我们的要求,但考虑到我们可能需要在单个 IP 上支持数百或数千个 SSL 证书,我正在努力确定最佳配置。
我的问题是:
- 我们有哪些选择来支持这么多 SSL 证书?是否应该继续使用 SNI 和 AWS Elastic Load Balancing 探索 CloudBees,还是我离题太远了?(ELB 仅支持 10 个开箱即用的证书。)理想的过程将在注册期间为我们的客户完全自动化。
任何建议表示赞赏。
apache - 每个带有 SSL 的 Apache 服务器有多个站点,显示带有 HTTPS 的错误站点
我有一个运行多个客户端站点的 Debian 服务器。其中大多数都没有运行 SSL,因此通过 HTTP 访问就可以了。
我有一位客户拥有 SSL 证书,并且通过 HTTPS 访问他们的网站也很好。
如果您尝试使用 HTTPS 访问其他站点之一,则会出现问题,您会被定向到具有 SSL 证书的其他站点。
例如,假设我们在服务器上有以下站点:
如您所见,charlie 是唯一使用 SSL 的,无论您访问 http charlie.net 还是 https charlie.net,它都可以正常工作。
http 到所有其他站点都很好,但是如果您要访问 https alpha.net,它最初会出现一个无效证书错误并让您继续,但是虽然它在地址栏中有 alpha.net,但它实际上显示浏览器中的 charlie.net 站点。
我已经研究了 SNI 以及是否有任何其他站点具有 SSL,我需要将它们全部放在特定的 IP 地址上(我需要尝试解决其他问题,因为我不知道该怎么做)但我不确定为什么会这样正在发生或我如何解决它。
以前有没有其他人遇到过这种情况,您是如何解决的?
非常感谢,
抢
python - Google App Engine 上 python 2.7 SNI 上的 urllib3 错误
我正在尝试使用 SNI 从托管在 Google App Engine 上的网站下载 HTTPS 页面。无论我使用什么库,我都会收到以下错误:
我尝试以多种方式解决该错误,包括使用 urllib3 openssl monkeypatch:
但是我总是遇到上面提到的相同错误。
有任何想法吗?
scala - 在 JDK < 8 的 TLS 握手中确定 SNI
我想解析 TLS (1.1/2) 握手并确定 SNI 信息。
JDK8 为此提供了功能。但我想要一个更直接和兼容的版本:
我开发了这个块,但它不能可靠地工作(有些浏览器可以工作,有些不能):
有人知道更好的方法吗?
谢谢!
ssl-certificate - SNI(服务器名称指示)的默认证书
简短的介绍
对于 Windows Server 2012:如果客户端不支持 SNI,是否可以定义默认证书?
详细描述
我们目前正在配置一个 Windows Server 2012 - 由于技术原因 - 只有一个 IP。该服务器用于两个任务:
- SSTP 主机 (vpn.example.com)
- 单个 TLS 网站 (www.example.com) 的主机
因此,为相同的 IP 地址和端口定义了两个证书。当调用 443 端口时,几乎每个客户端都会提交 SNI 参数“server_name”。然后,服务器会使用此参数为连接选择正确的证书。
但是:带有 Internet Explorer 的 Windows XP 不支持 SNI,并且缺少参数“server_name”。因此,服务器必须做出猜测,返回哪个证书。在我们的例子中,它默认为 vpn-certificate 并且浏览器显示证书错误(因为证书的主机名“vpn.example.com”与 url “www.example.com”中的主机名不匹配)。
有没有办法建议服务器使用 www-certificate 作为默认值?
在我们的案例中,这将是一个完美的解决方案:
- 所有 www 请求都将获得 www 证书,即使它们不支持 SNI。
- 所有 SSTP 请求都会获得 vpn 证书,因为它们都支持 SNI。
这可以做到吗?
c# - 来自 C# 的服务器名称指示
据我所知,.NET 似乎存在很大的限制,因为无法使用 C# 和 .NET 建立使用服务器名称指示 (SNI) 的 TLS 连接。我错过了什么还是我的理解正确?
有人知道我是否以及如何使用 OpenSSL.NET、libcurl.NET 或其他一些 3rd 方 .NET 库建立 SNI 连接?一些示例代码将不胜感激。
ssl - 带有 SAN 的 azure 网站 ssl 标识为 *.azurewebsites.net
我正在尝试将网站移动到 Azure(Azure 网站)。我把所有东西都搬走了,除了 ssl 不工作。出现的错误说
You attempted to reach [subdomain].[domain].com, but instead you actually reached a server identifying itself as *.azurewebsites.net ...
我认为这可能与我的证书有关。该证书是通过 GoDaddy 获得的 UCC 证书(多 SAN)。当我将站点从旧服务器移到 Azure 网站时,我没有重新输入证书。旧服务器使用 Parallels 进行管理。这是我为移动证书所做的事情:
我在旧服务器上登录了 Parallels。我打开 SSL 屏幕,在那里我可以看到证书的 4 个部分(csr、私钥、证书、CA 证书)。我复制了每个文本的文本(包括---Begin Certificate---
和---End Certificate---
行。编辑:私钥以 开头---Begin RSA Private Key---
和结尾---End RSA Private key
),然后粘贴数据以创建 4 个 .txt 文件。然后我重命名了 txt 文件,这样我就有了 4 个名为CAcertificate.cer
、certificate.cer
、privateKey.pem
和cert.cer
. 它们都保存在 c:\ 目录(根目录)中。
然后我拉起 OpenSSL 并运行以下命令:
pkcs12 -export -in c:\certificate.cer -inkey c:\privateKey.pem -out c:\certificate.pfx -certfile c:\CAcertificate.cer
我输入了两次密码,然后弹出了一个 certificate.pfx 文件。
我将该文件上传到我的 Azure 网站。UCC 证书适用于 4 个子域。我将我的 Azure 网站设置为仅使用其中一个子域作为域名。上传文件后,我转到SSL Binding
,选择该子域,将其与我刚刚上传的证书匹配,然后选择“SNI SSL”。我保存了它,一切看起来都很好。
不幸的是,当我浏览到子域时,我收到了我在开头列出的错误。
我设置了一个 CName 以从该子域转发到 Azure 网站。我还设置了一条 A 记录,以从该子域指向 Azure 网站的 IP 地址。除了 ssl 证书错误之外,该站点正在按我的预期启动。
我是否错误地生成了 .pfx 文件?我需要在 Azure 或我的域注册商中进行更改吗?我注意到我可以从平行面板下载一个 .pem 文件。它在一个文件中包含证书的所有 4 个部分。我不知道我能用它做什么。
web - SNI - 统计
我在网上做了深入的研究。但我找不到任何关于有多少网站实际使用 SNI 的统计数据
我唯一能找到的是哪些浏览器支持 SNI
有人可以说这是常见的解决方案吗?或者也许没有人使用它?
谢谢乔