如何隐藏“备用名称” SSL 证书(在 SSLlabs 测试中)?

如何隐藏“备用名称” SSL 证书(在 SSLlabs 测试中)?

在我的网站上运行 ssllabs.com 的测试时,输出包含 NGINX Web 服务器上托管的其他域(之一)的“证书 #2”。它是红色的并且不受信任,但我宁愿干脆没有这个选项,这样程序就可以查看此服务器上托管了哪些其他域。在此处输入图片描述

答案1

如果您的服务器使用较旧的协议(没有 SNI)进行联系https,或者甚至使用其 IP 地址而不是域名进行联系,Nginx 将选择默认server块并使用与其关联的证书。

您看到的测试结果只是识别哪个server块是默认块。

您可以通过使用该属性标记其中一个server块(用于监听https连接)来选择 Nginx 在这些情况下应使用哪个证书default_server

例如:

server {
    listen 443 ssl default_server;
    ssl_certificate     ...;
    ssl_certificate_key ...;
    ...
}

您甚至可以选择通过声明拒绝这些连接return 444;,但您仍然需要有效的证书来首先协商连接。

请参阅默认服务器HTTPS 服务器

答案2

当浏览器与 https://< 中的服务器对话时服务器名称> 交易中,第一步是服务器显示其证书,以便浏览器检查服务器页面是否来自其声明的来源。如果 <服务器名称> 位于服务器显示的证书中,并且该证书由浏览器信任的机构签名。

浏览器用来检查服务器名称的字段不是中国(通用名称)正如预期的那样。由于历史原因,浏览器实际上会检查名称是否在“主题备用名称“字段。也就是说,如果您使用的证书中没有“主题备用名称”列表中的服务器名称,则浏览器在尝试访问该名称时将收到错误。

因此,如果您想为某个网站使用不包含其他网站信息的证书,则必须使用为每个服务站点提供不同的证书由同一主持人。

相关内容