You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于单IP的2500个Apache虚拟主机批量配置Let's Encrypt方案问询

单IP下2500个Apache虚拟主机配置Let's Encrypt证书的实践方案

核心推荐方案:Certbot + Apache插件(批量模式)

我在生产环境里帮客户部署过类似规模的场景,这个方案完全适配单IP环境,自动化程度拉满,已经经过大量实践验证。

步骤1:安装Certbot及Apache插件

先根据你的系统发行版执行对应安装命令:

  • 对于Ubuntu/Debian:
    sudo apt update && sudo apt install certbot python3-certbot-apache
    
  • 对于RHEL/CentOS(需先启用EPEL源):
    sudo dnf install epel-release && sudo dnf install certbot python3-certbot-apache
    

步骤2:批量生成证书的两种高效方式

2500个域名逐个操作不现实,分两种场景处理:

场景A:多域名集中在少量配置文件

如果你的虚拟主机配置是把多个域名放在一个/几个配置文件中,推荐用域名文件批量处理:

  1. 把所有域名写入一个文本文件(比如domains.txt),每行一个域名:
    example.com
    www.example.com
    example.net
    www.example.net
    # ... 剩下的2496个域名
    
  2. 执行批量颁发命令:
    sudo certbot --apache --domains-file domains.txt --non-interactive --agree-tos --email your-email@example.com
    

Certbot会自动扫描Apache的VirtualHost配置,匹配域名完成证书颁发,同时自动修改配置实现HTTP→HTTPS重定向。

场景B:每个域名对应独立配置文件

如果每个域名都有单独的.conf文件(比如/etc/apache2/sites-available/下的文件),用Shell脚本批量遍历处理:

for conf in /etc/apache2/sites-available/*.conf; do
  sudo certbot --apache -c "$conf" --non-interactive --agree-tos --email your-email@example.com
done

脚本会逐个识别配置文件里的ServerName/ServerAlias,自动颁发对应证书。

步骤3:自动续期验证

Let's Encrypt证书有效期90天,Certbot默认会自动配置systemd定时器或cron任务完成续期,你可以用以下命令验证续期逻辑是否正常:

sudo certbot renew --dry-run

输出无错误则说明自动续期已生效,无需手动干预。

实践踩坑的关键注意事项

  • 单IP速率限制规避:Let's Encrypt对单IP的证书颁发限制是每周最多5000个证书,但单张证书可包含多个域名(SAN证书)。建议把主域名和对应www子域名打包在同一张证书里,既节省证书数量,又避免触发速率限制。
  • Apache配置规范:确保每个VirtualHost的ServerName和ServerAlias配置准确,Certbot完全依赖这些字段匹配域名,示例配置片段:
    <VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      # 其他业务配置
    </VirtualHost>
    
  • 性能优化:2500个证书会占用一定资源,建议开启Apache的SSL会话缓存提升HTTPS性能:
    SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)
    SSLSessionCacheTimeout 300
    
  • 日志监控:定期查看Certbot日志(/var/log/letsencrypt/letsencrypt.log),确保续期过程无异常。

轻量替代方案:Acme.sh

如果你觉得Certbot资源占用偏高,也可以用纯Shell编写的Acme.sh,它更轻量,同样支持批量处理:

  1. 安装Acme.sh:
    curl https://get.acme.sh | sh
    
  2. 批量颁发证书:
    acme.sh --issue --domains-file domains.txt --apache
    
  3. 自动续期:Acme.sh默认每天自动检查续期,也可手动配置定时任务。

不过我个人更推荐Certbot,它和Apache的集成更紧密,官方支持更完善,排查问题时文档和社区资源更丰富。

内容的提问来源于stack exchange,提问作者Ole Tange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:53:50