问题标签 [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.
tomcat - 如何使用 SNI 设置 Tomcat 服务两个 SSL 证书?
根据这两个答案[1] [2]Apache Tomcat
,可以使用服务器名称指示 (SNI)从相同的服务器提供两个 SSL 证书。
那么我的问题是,如何设置?我可以设置两个虚拟主机,但我仍然只有一个连接器,它将指定的 SSL 证书提供给客户端。在连接器中,可以指定用于证书的密钥库和别名,但没有参数说明此连接器用于哪个虚拟主机,或者他应该根据使用的域向客户端提供哪个证书。
在使用 SNI 时,我如何告诉 tomcat 他必须使用哪个 SSL 证书(或者更准确地说是哪个密钥库)?
[1] https://stackoverflow.com/a/10173447
[2] https://stackoverflow.com/a/6343059
ssl - Apache MINA SNI 实现
有没有人在 Apache MINA 的 SSLFilter 中实现 SNI(服务器名称指示)的经验?
任何方向将不胜感激。
.net - 使用 SNI 选项以编程方式在 IIS 8 上添加绑定
我正在尝试为使用 Microsoft.Web.Administration 库(.NET Framework)检查标志 SNI(服务器名称指示)的 IIS 8 创建绑定。
这对我来说是必要的,因为我想在 IIS 下为同一个网站获取多个 SSL 绑定,所有这些都只使用一个 IP 地址。这是 IIS 8 的主要新功能之一。
我一直在研究 Binding 类,但找不到任何标志或选项来指示它。
当前的 Microsoft.Web.Administration v 7.0.0.0 是否可行?我需要一个我还没有找到的新版本吗?
我知道版本 7.9.0.0 仅适用于 IIS express,这不是我的方案,所以我没有研究它。
java - Java 1.6 的服务器名称指示支持
我想为我在 java 上构建的服务器添加 SNI 支持。谷歌搜索后,我发现 java 1.8 在服务器端有支持。java 1.6 的服务器端是否有任何库或补丁支持 SNI?
java - TLS 扩展“服务器名称指示”(SNI):值在服务器端不可用
基于 JSSE 示例,我试图在服务器端获取 TLS 参数“服务器名称指示”(SNI)的值 - 没有成功。我确定该值是由客户端发送的,因为我使用了显示该值的网络嗅探器(Wireshark)。
但是当我使用以下代码片段时,服务器名称参数列表为空(同时显示了“协议”):
iis-8 - Octopus Deploy:在 IIS HTTPS 绑定上启用 SNI?
我们正在使用Octopus Deploy及其“ IIS 网站和应用程序池”进程功能将我们的 ASP.NET MVC 应用程序部署到 IIS。它工作得很好。
现在,我们要为 HTTPS 绑定启用SNI。Octopus Deploy 似乎没有为此提供内置复选框。我们如何自定义 Octopus Deploy 的 IIS 部署以自动启用 SNI?
如果它使事情变得更容易,如果 Octopus Deploy 自动为所有 HTTPS 绑定启用 SNI 对我们来说没问题,我们不需要对其进行设置。
apache - Apache/SNI:禁用或不存在的子域导致其他 SNI 子域正在服务
浏览器是当前的 Chrome 或 FF。在服务器 apache 2.2ish 上。
我启用了许多 SNI 站点 - 虚拟主机 *.443 等。所有单独的配置文件。一切正常。
如果我在浏览器中导航到这些“SNI”站点之一。然后我在服务器上禁用该站点 - 例如a2dissite THAT_SITE
,(随后重新加载并重新启动以确保)然后在浏览器上我尝试重新加载我得到的原始页面:
THAT_SITE.xx.com 使用了无效的安全证书。该证书不受信任,因为它是自签名的。该证书仅对 ANOTHER_SITE.yy.com 有效
其中 ANOTHER_SITE.yy.com 是另一个网站。
如果我随后接受我在 ANOTHER_SITE.yy.com 上发现的证书(!),我认为这可能是浏览器缓存问题,但关闭和重新打开 FF 没有任何区别。似乎 SNI def:
被“忽略”
奇怪的是,即使是不存在的子域,例如 THAT_SITE_XX 等,也被定向到具有相同消息的同一个 SNI 站点 - 似乎是默认设置。按字母顺序它是第一个虚拟主机(文件名)
c - 使用 SNI 在一个盒子中为多个域提供服务
我在 FreeBSD-8.2 中使用 OpenSSL 0.9.8q。我的系统上有 3 个虚拟主机,并希望实现 SNI 以在一台服务器中为所有 3 个虚拟主机提供服务。
我有 3 个单独的证书,每个证书都有一个,在我的 ssl-server 代码中,我必须以某种方式找出客户端请求的域名是什么,并在此基础上使用适当的证书文件。为此,我编写了一个名为的函数get_ssl_servername_cb
并将其作为回调函数传递给SSL_CTX_set_tlsext_servername_callback
. 这样,在回调函数中我可以得到客户端请求的域名。
但我的问题是,这个回调函数是在函数执行之后执行的SSL_accept
,但是我必须在使用命令之前选择并使用适当的证书SSL_new
,这是在执行SSL_accept
.
所以我的问题是,我怎样才能使用SSL_CTX_set_tlsext_servername_callback
SNI 的功能?
python - wrap_socket() got an unexpected keyword argument 'server_hostname'?
I'm trying to use Python to test a web server. I have nearly no experience with Python, but encouraged to use it because its easy to learn and simple to do things with (someone else's opinion, not mine at the moment). The script I am using is:
The error is:
I've also tried using servername
, name
, hostname
and sni
with no joy.
The Python docs don't mention SNI (TLS/SSL wrapper for socket objects and SSL wiki page). But I know the patch for SNI and server_hostname
was incorporated 4 years ago in 2010 (Add a *server_hostname* argument to SSLContext.wrap_socket
, changeset 65593:846c0e1342d0).
The equivalent OpenSSL call I need access to is SSL_set_tlsext_host_name
.
How do I specify the SNI hostname? (Eventually, I'll need to set it to an arbitrary name because I am testing a proxy).
curl - 使用 OpenSSL 1.0.1e 的 CentOS 版本 5.9(最终版)握手失败
我需要使用 CURL 检查网站(https://d1lto7any9tcj3.cloudfront.net/service/index.php),但我的操作系统是 CentOS 版本 5.9(最终版)OpenSSL 是 0.9.8e。
当我使用 curl -v https://d1lto7any9tcj3.cloudfront.net/service/index.php它说
“错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败”
原因是 SNI 问题
在我将 OpenSSL 更新到 1.0.1e 之后,但它也给出了同样的错误
你能帮我解决这个问题吗?