Apache HTTPS批量配置核心是复用SSL基础配置、按域名隔离证书路径、统一管理虚拟主机块;需全局启用mod_ssl和Listen 443,用Include指令引入各域名独立.conf文件,每个仅定义ServerName、DocumentRoot及对应SSL证书路径,避免重复冗余配置。

Apache 虚拟主机中 HTTPS 批量配置,核心在于复用 SSL 基础配置 + 按域名隔离证书路径 + 统一管理虚拟主机块,避免为每个站点重复写一堆 SSL 指令。实际运维中,不推荐手写几十个 <VirtualHost *:443> 块,而应结构化、可维护地组织。
一、统一启用 SSL 模块和监听端口
确保全局只做一次:
- 确认
mod_ssl已加载(检查/etc/httpd/conf.modules.d/00-ssl.conf或主配置中LoadModule ssl_module modules/mod_ssl.so已启用) - 全局监听 443 端口(在
ports.conf或主配置中添加):Listen 443 https
- 启用名称虚拟主机支持:
NameVirtualHost *:443
二、按域名拆分证书目录,规范命名
为每个 HTTPS 站点准备独立的证书文件夹,例如:
/etc/httpd/ssl/example.com/ ├── fullchain.pem # 证书链(含域名证书 + 中间 CA) ├── privkey.pem # 私钥(无密码,权限 600) └── cert.pem # 域名证书(可选,若 fullchain 已包含则无需单独指定)
✅ 推荐使用
fullchain.pem + privkey.pem组合,兼容性好;避免带密码的私钥(否则 Apache 启动时卡住)。
三、用 Include 指令批量引入虚拟主机配置
创建统一入口文件(如 /etc/httpd/conf.d/vhosts-https.conf),内容仅一行:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
Include conf/vhosts-https/*.conf
然后在 /etc/httpd/conf/vhosts-https/ 下为每个域名建一个 .conf 文件,例如:
-
example.com.conf -
blog.example.com.conf -
api.example.com.conf
每个文件内容极简,只聚焦差异化部分:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/example.com/fullchain.pem
SSLCertificateKeyFile /etc/httpd/ssl/example.com/privkey.pem
<Directory "/var/www/example.com">
Require all granted
</Directory>
</VirtualHost>四、自动化生成配置(可选但高效)
对数十个域名,可用脚本批量生成 .conf 文件。例如 Bash 片段:
for domain in site1.com site2.com shop.example.org; do
cat > "/etc/httpd/conf/vhosts-https/${domain}.conf" <<EOF
<VirtualHost *:443>
ServerName ${domain}
DocumentRoot /var/www/${domain}
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/${domain}/fullchain.pem
SSLCertificateKeyFile /etc/httpd/ssl/${domain}/privkey.pem
Require all granted
</VirtualHost>
EOF
done运行后执行 apachectl configtest && systemctl reload httpd 即可生效。
不复杂但容易忽略

















