Apache 怎么在 httpd.conf 中配置多域名共用同一个 SSL 证书

小萱酱_3725

小萱酱_3725

2026-08-22

946人浏览

原创

不能真正共用同一证书文件支持多域名https,因tls握手早于http请求,必须依赖sni按域名加载匹配证书;仅当证书为含所有域名的san证书时,多个virtualhost引用同一证书文件才合法有效。

apache 怎么在 httpd.conf 中配置多域名共用同一个 ssl 证书

不能在 httpd.conf 中让多个域名“共用同一个 SSL 证书”来实现正确的 HTTPS 多域名支持——这不是配置问题,而是 TLS 协议和 Apache 的工作逻辑决定的。

为什么不能真正“共用”一个证书?

SSL/TLS 握手发生在 HTTP 请求之前,服务器必须在收到 Host 头前就选定证书。Apache 依赖 SNI(Server Name Indication)技术,在 TLS 握手初期根据客户端明文发送的域名,加载对应证书。这意味着:

  • 每个 <virtualhost></virtualhost> 必须显式指定自己的 SSLCertificateFile 和 SSLCertificateKeyFile
  • 若多个 VirtualHost 指向同一组证书文件(比如都写 SSLCertificateFile "/path/to/common.crt"),它们确实能启动,但浏览器访问时会因证书 Subject 或 SAN(Subject Alternative Name)不匹配而报错(如 NET::ERR_CERT_COMMON_NAME_INVALID)
  • 只有当该证书本身是 多域名证书(SAN 证书) 或 通配符证书,且覆盖所有要绑定的域名时,“物理上共用一个文件”才安全有效

正确做法:用一张 SAN 证书覆盖多个域名

如果你的目标是减少证书管理数量,应申请或生成一张包含多个域名的证书,例如:

  • 证书的 SAN 字段包含:example.com, www.example.com, api.example.com, blog.other-site.com
  • 生成 CSR 时需明确指定所有域名:
    openssl req -new -key example.key -out example.csr -subj "/CN=example.com" -reqexts SAN -config
  • Let’s Encrypt 支持一键签发多域名证书:
    certbot certonly --standalone -d example.com -d www.example.com -d api.example.com

配置示例:单张 SAN 证书服务多个域名

假设你已有一张覆盖 site-a.com、www.site-a.com、site-b.com 的证书(fullchain.pem + privkey.pem),可这样写两个虚拟主机:

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载
<virtualhost>
    ServerName site-a.com
    DocumentRoot "/var/www/site-a"
    SSLEngine on
    SSLCertificateFile "/etc/letsencrypt/live/multi-domain/fullchain.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/multi-domain/privkey.pem"
</virtualhost><virtualhost>
    ServerName site-b.com
    DocumentRoot "/var/www/site-b"
    SSLEngine on
    SSLCertificateFile "/etc/letsencrypt/live/multi-domain/fullchain.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/multi-domain/privkey.pem"
</virtualhost>

✅ 这是合法且常见的做法:多个 VirtualHost 引用同一组证书文件,前提是证书本身信任所有域名。

常见误区与风险

以下操作看似“省事”,实则不可取:

  • 把不同域名的证书文件硬链接或复制到同一路径再共用——仍需确保每个域名都在证书 SAN 中,否则浏览器拒绝信任
  • 在全局配置(如 httpd.conf 根层级)设置 SSLCertificateFile——Apache 2.4+ 不支持,会被忽略或导致第一个虚拟主机以外的站点加载失败
  • 用自签名根证书签发多个域名证书但未将根证书导入客户端——仅限内网测试,公网无效

真正决定是否“能共用”的,不是 Apache 配置方式,而是证书内容本身是否涵盖全部目标域名。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache ssl

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2552

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2296

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4232

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习