首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache如何选择使用哪个证书?

Apache如何选择使用哪个证书?
EN

Server Fault用户
提问于 2021-01-05 13:06:31
回答 2查看 756关注 0票数 1

目前,Apache正在托管几个带有由certbot和http挑战生成的主机证书的子域。

现在,我想设置一个默认的虚拟ssl主机,以便将不存在的子域重定向到主域。为此,我将生成一个带有DNS挑战的通配符证书。

由于我目前无法使用DNS挑战自动更新,所以我希望只对Apache中的默认ssl主机使用通配符证书。

我的问题是:当Apache和浏览器进行第一次协商时,Apache将首先在与请求的主机匹配的配置中查找证书,还是每次都会提供默认ssl主机中配置的通配符证书?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2021-01-05 14:15:48

Apache文档包含一个为请求选择VirtualHost的详细部分。引用自“服务器如何选择正确的基于名称的虚拟主机”一节:

必须认识到,基于名称的虚拟主机解析的第一步是基于IP的解析。基于名称的虚拟主机解析仅在将候选主机缩小到最佳基于IP的匹配后选择最合适的基于名称的虚拟主机。在所有VirtualHost指令中对IP地址使用通配符(*)使基于IP的映射变得无关紧要。当请求到达时,服务器将根据请求使用的IP地址和端口找到最佳(最具体)匹配的参数。如果有多个虚拟主机包含此最佳匹配地址和端口组合,Apache将进一步将ServerName和ServerAlias指令与请求中的服务器名称进行比较。如果从任何基于名称的虚拟主机中省略ServerName指令,服务器将默认为从系统主机名派生的完全限定域名(FQDN)。这种隐式设置的服务器名可能导致违反直觉的虚拟主机匹配,并且是不鼓励的。

您应该创建一个专用的默认VirtualHost。对没有显式列出在另一个VirtualHost块中的主机的每个请求都将被定向到那里,因此您可以选择在那里使用哪个证书。

票数 1
EN

Server Fault用户

发布于 2021-01-05 14:09:17

Apache允许您在虚拟主机级别指定SSLCertificateFile指令。参见SSLCertificateFile,其中写着“上下文:服务器配置,虚拟主机”。因此,无论它使用哪个虚拟主机来响应请求--无论是默认的虚拟主机,还是另一个虚拟主机--它都将使用您在虚拟主机中使用SSLCertificateFile配置的证书。

我希望这能回答你的问题?

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1048653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档