标签: sni

同一 IP 地址和同一端口上的多个 SSL 域?

这是一个关于在同一 IP 上托管多个 SSL 网站的规范问题

我的印象是每个 SSL 证书都需要它自己唯一的 IP 地址/端口组合。但是我之前发布的一个问题答案与这个说法不一致。

使用来自该问题的信息,我能够获得多个 SSL 证书以在相同的 IP 地址和端口 443 上工作。鉴于上述假设,我很困惑为什么这有效,并得到其他人的强化,即每个 SSL 域网站上的同一台服务器需要自己的 IP/端口。

我怀疑我做错了什么。可以这样使用多个 SSL 证书吗?

ssl virtualhost sni apache-2.2

110
推荐指数
5
解决办法
8万
查看次数

如何检测服务器是否将 SNI 用于 HTTPS?

我正在寻找一种简单的方法来了解服务器是否在网站上为其 HTTPS 证书使用服务器名称指示 SSL 扩展。使用浏览器或 Unix 命令行的方法都可以。

谢谢!

ssl https sni

47
推荐指数
2
解决办法
8万
查看次数

在 IIS8 上设置默认 SSL 站点

我在 IIS8 上设置了几个网站,所有网站都使用相同的通配符 SSL 证书。某些站点需要旧版浏览器和操作系统才能访问,因此我无法使用“需要服务器名称指示”选项。

由于并非所有设备都支持 SNI,因此 IIS 显示以下警报:

“尚未创建默认 SSL 站点。为了支持没有 SNI 功能的浏览器,建议创建默认 SSL 站点。”

如何创建默认 SSL 站点?我找到的最接近的文章不是很清楚,我有一种感觉,必须有一个更简单的解决方案。

服务器详细信息:Windows Server 2012、IIS8、一个外部 IP 地址

ssl sni iis-8

34
推荐指数
1
解决办法
9万
查看次数

SAN 和 SNI SSL 证书有什么区别?

有人可以以简化的方式向我解释这些证书之间的区别吗?我读了一些文章,但听起来他们做同样的工作,即用一个证书加密多个域。

ssl sni subject-alternative-names

26
推荐指数
3
解决办法
3万
查看次数

反向代理可以将 SNI 与 SSL 传递一起使用吗?

我需要使用一个外部 IP 地址通过 https 为多个应用程序提供服务。

不应在反向代理上管理 ssl 证书。它们安装在应用程序服务器上。

是否可以将反向代理配置为使用 SNI 并通过 ssl 在端点处终止?

这可以使用 Nginx 或 Apache 之类的东西吗?配置是什么样的?

https reverse-proxy sni

24
推荐指数
3
解决办法
2万
查看次数

仅当浏览器支持 SNI 时才重定向到 SSL

我有带有 mod_ssl 的 Apache 2.2 和一堆 HTTPS 站点,位于与 VirtualHosting 相同的 IP/端口上,因此客户端必须支持 SNI 才能连接到这些虚拟主机。

我想通过以下方式配置我的服务器:

当用户输入 www.dummysite.com 并且他的浏览器支持SNI(服务器名称指示)时,任何 HTTP 请求都会被重定向到https://发送 HSTS 标头的位置。但如果浏览器不支持SNI,则请求由 HTTP 提供。

上面的规则,按原样陈述,实际上是那些仍然运行旧浏览器的人的后备规则,因为 Mozilla 和 Chrome 没有这个问题,只是为了避免让这些用户离开网站。

我想在 Apache 配置级别执行此重定向,可能在用户代理上使用过滤器。我不想触摸正在运行的应用程序,除非确保不存在直接的 http:// 引用(否则它们意味着安全警告)

[编辑](在编辑问题时我忘记问题):要重定向的启用 SNI 的用户代理列表是什么?

ssl virtualhost sni apache-2.2

21
推荐指数
2
解决办法
2万
查看次数

“服务器应该是 SSL-aware 但没有配置证书 [提示:SSLCertificateFile]”错误

最近将 Apache2 升级到 2.2.31 版后,我发现 SSL VirtualHost 设置中有一个奇怪的行为。

即使客户端Server Name Identification知道,我托管的一些网站也会显示默认主机的证书,而这仅发生在其中一些网站上。这显示为常见的 Firefox/Chrome 的护照警告,如果您正在浏览您的家庭银行,您可能会被骗,但事实并非如此。

需要明确的是,如果服务器host.hostingdomain.org有自己的 SSL,则尝试访问 的https://www.hostedsite.org报告证书host.hostingdomain.org,但少数https://www.hostedsite.me报告了正确的证书。

所有站点都托管在相同的 IP 地址上,在端口 443 上。事实上,VirtualHosting 在 HTTP 端工作并自动将支持 SNI 的客户端重定向到 SSL,因此它向后兼容不支持 SNI 的客户端。

检查违规 VirtualHosts 的错误日志显示以下文本

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
Run Code Online (Sandbox Code Playgroud)

事实上,虚拟主机已正确配置了 SSLCertificateFile。

问题很明显:如何解决这个问题?

ssl virtualhost sni apache-2.2

21
推荐指数
2
解决办法
4万
查看次数

如何定义nginx首先使用SNI发送哪个SSL证书?

我在 Debian Squeeze 上使用 nginx 1.2.7 和 OpenSSL 0.9.8o 大约 30 个域。我在其中两个上启用了 SSL,这两个都可以正常工作。

SSL 配置用于两个域:

listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.org-unified.crt;
ssl_certificate_key /etc/nginx/ssl/example.org.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security max-age=600000;
Run Code Online (Sandbox Code Playgroud)

使用 ssllabs.com 检查器检查两个域我得到一个域的通知“此站点仅适用于支持 SNI 的浏览器。”。对于其他域,我没有收到此消息。默认情况下,nginx 似乎将按字母顺序排列的第一个域的证书发送给没有 SNI 支持的客户端。我可以改变这种行为吗?

换句话说:我想将 nginx 配置为具有 SSL 的特定域,即使对于没有 SNI 支持的客户端也是如此。其他域也应该与 SSL 一起使用,但如果它仅适用于启用了 SNI 的客户端也可以。

谢谢!

ssl nginx sni

12
推荐指数
1
解决办法
8054
查看次数

SNI 和通配符 SSL 证书与 IIS 位于同一台服务器上

我想托管一个网站,该网站应该侦听子域(例如 sub.domain.com)以及多个位于具有 IIS 和 SSL 的二级域(例如 domain2.com、domain3.com)下的网站。

对于带有子域的网站,我有一个通配符证书 (*.domain.com),而且我还有专门用于其他站点(domain2.com 和 domain3.com)的证书。

这样的设置是否可以托管在同一个 IIS 上(如果这很重要,在 Azure 云服务 Web 角色中)?

问题正是titobf在此处解释的:理论上,为此我们需要使用SNI进行绑定,为domain2/3.com指定主机,然后使用*主机为*.domain.com指定一个包罗万象的网站。但实际上,无论绑定如何设置,如果万能网站在它上面,它也会收到对 domain2/3.com 的所有请求(尽管据说它只是作为最后的手段才匹配)。

任何帮助,将不胜感激。

仍未解决

不幸的是,我无法解决这个问题:它似乎只能以极其复杂的方式解决,比如创建一个位于 IIS 和 Internet 之间的软件(因此基本上是一个防火墙)并修改传入的请求(在 SSL 握手发生之前! ) 来允许场景。我相当有信心这在 IIS 中是不可能的,无论如何,甚至从本机模块也不可能。

我必须澄清:我们使用 Azure 云服务,因此我们有一个进一步的限制,即我们不能使用多个 IP 地址(请参阅:http : //feedback.azure.com/forums/169386-cloud-services-web-and -worker-role/suggestions/1259311-multiple-ssl-and-domains-to-one-app)。如果您可以将多个 IP 指向您的服务器,那么您就不会遇到此问题,因为您也可以为 IP 创建绑定,并且这些绑定将与通配符绑定一起使用。更具体地说,您需要一个用于通配符站点的 IP(但由于您现在拥有一个单独的 IP,因此您不必配置通配符主机名绑定)和另一个用于所有其他非通配符站点的 IP。

实际上,我们的解决方法是使用非标准 SSL 端口 8443。因此 SNI 绑定实际上绑定到此端口,因此它与其他绑定一起使用。不好,但对我们来说是一种可接受的解决方法,直到您可以为 Web 角色使用多个 IP。

现在非工作绑定

第一个 https 绑定是带有简单证书的 SNI,第二个不是带有通配符证书的 SNI。

http 站点和 SNI https 站点一样有效,但具有通配符绑定的站点会给出“HTTP 错误 503。该服务不可用”。(没有任何进一步的信息,没有失败的请求跟踪或事件日志条目)。 绑定

终于让它基本工作了

启用像 Tobias 描述的 ETW …

iis ssl ssl-certificate sni azure

12
推荐指数
2
解决办法
1万
查看次数

在 Windows Server 2012 R2 上使用 SNI 不起作用

在此处输入图片说明

我试图让我的两个站点在 Windows Server 2012 R2 上运行它们的单独证书。

这不应该吗?

在最后添加的站点 www.c1get.net 上,我从第一个站点获得证书并因此发出警告。

更新

SSL Certificate bindings:
-------------------------

    IP:port                      : 0.0.0.0:443
    Certificate Hash             : fabae896e032f9ba08b389d8c9ecd33908fabe31
    Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
    Certificate Store Name       : My
    Verify Client Certificate Revocation : Enabled
    Verify Revocation Using Cached Client Certificate Only : Disabled
    Usage Check                  : Enabled
    Revocation Freshness Time    : 0
    URL Retrieval Timeout        : 0
    Ctl Identifier               : (null)
    Ctl Store Name               : (null)
    DS Mapper Usage              : Disabled
    Negotiate Client Certificate : Disabled

    IP:port …
Run Code Online (Sandbox Code Playgroud)

iis sni windows-server-2012-r2

11
推荐指数
1
解决办法
6699
查看次数