Skip to main content

如何申请多域名SSL证书:一个证书保护多个域名

· 7 min read
OHTTPS

多域名SSL证书(也称为SAN证书,Subject Alternative Name)可以在一个证书中保护多个不同的域名。这些域名可以是完全不同的域名,也可以是同一域名的不同子域名。本文将详细介绍如何申请多域名SSL证书,包括申请流程、域名添加、验证方式和配置方法。

一、什么是多域名证书?

1. 多域名证书的定义

多域名证书(Multi-Domain Certificate)使用SAN(Subject Alternative Name)扩展来保护多个域名。证书中包含一个主域名和多个备用域名。

2. 多域名证书的保护范围

可以保护的域名类型

3. 多域名证书的优势

  • ✅ 一个证书保护多个域名
  • ✅ 管理方便,只需管理一张证书
  • ✅ 证书更新时只需更新一次
  • ✅ 适合拥有多个域名的场景

4. 多域名证书的限制

  • ❌ 添加新域名需要重新申请证书
  • ❌ 证书中包含所有域名,如果某个域名泄露可能影响其他域名
  • ❌ 价格通常比单域名证书高

二、多域名证书的申请要求

1. 支持的CA

免费多域名证书

  • Let's Encrypt(通过OHTTPS、acme.sh等)
  • FreeSSL.cn

付费多域名证书

  • DigiCert
  • Sectigo
  • GlobalSign
  • 其他商业CA

2. 域名数量限制

免费证书

  • Let's Encrypt:每个证书最多100个域名
  • FreeSSL.cn:根据平台规定

付费证书

  • 通常支持2-250个域名
  • 价格随域名数量增加

3. 验证方式

多域名证书支持多种验证方式:

  • DNS验证
  • HTTP验证
  • 邮箱验证(部分CA)

三、使用OHTTPS申请免费多域名证书

1. 创建证书申请

  1. 登录OHTTPS平台
  2. 进入"证书管理"
  3. 点击"创建证书"
  4. 选择验证方式

2. 填写域名信息

主域名

  • 输入主域名,如:example.com

添加其他域名

  • 点击"添加域名"
  • 输入要添加的域名
  • 可以添加多个域名

示例

  • 主域名:example.com
  • 其他域名:

3. 完成域名验证

DNS授权验证模式

  1. 选择已创建的DNS授权
  2. 系统自动为每个域名添加DNS验证记录
  3. 等待所有域名验证完成

免DNS授权验证模式

  1. 系统显示每个域名需要添加的CNAME记录
  2. 在DNS服务商处为每个域名添加CNAME记录
  3. 等待DNS解析生效
  4. 系统自动完成验证

HTTP验证模式

  1. 系统显示每个域名需要创建的验证文件
  2. 在服务器上为每个域名创建验证文件
  3. 确保可以通过HTTP访问验证文件
  4. 系统自动完成验证

4. 等待证书签发

所有域名验证通过后,系统自动申请证书:

  • 通常几分钟内完成
  • 证书有效期90天
  • 支持自动更新

四、使用acme.sh申请多域名证书

1. 申请多域名证书

~/.acme.sh/acme.sh --issue \
-d example.com \
-d www.example.com \
-d api.example.com \
-d blog.example.com \
--webroot /var/www/html

2. DNS验证方式

export CF_Email="your-email@example.com"
export CF_Key="your-api-key"

~/.acme.sh/acme.sh --issue \
-d example.com \
-d www.example.com \
-d api.example.com \
--dns dns_cf

3. 安装证书

~/.acme.sh/acme.sh --install-cert \
-d example.com \
--key-file /path/to/key.pem \
--fullchain-file /path/to/fullchain.pem \
--reloadcmd "systemctl reload nginx"

五、使用Certbot申请多域名证书

1. HTTP验证方式

sudo certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-d www.example.com \
-d api.example.com \
-d blog.example.com

2. DNS验证方式

sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d example.com \
-d www.example.com \
-d api.example.com

六、多域名证书的配置

1. Nginx配置

单个server块配置多个域名

server {
listen 443 ssl;
server_name example.com www.example.com api.example.com;

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

# 其他配置...
}

多个server块共享证书

# 第一个域名
server {
listen 443 ssl;
server_name example.com;

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

# 其他配置...
}

# 第二个域名
server {
listen 443 ssl;
server_name www.example.com;

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

# 其他配置...
}

2. Apache配置

单个VirtualHost配置多个域名

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com api.example.com

SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.pem
</VirtualHost>

多个VirtualHost共享证书

<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.pem
</VirtualHost>

<VirtualHost *:443>
ServerName www.example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.pem
</VirtualHost>

七、多域名证书的使用场景

1. 多品牌网站

场景

  • 一个公司拥有多个品牌
  • 每个品牌使用不同的域名
  • 如:brand1.com、brand2.com、brand3.com

优势

  • 一个证书保护所有品牌域名
  • 统一管理证书

2. 主域名和子域名

场景

优势

  • 一个证书保护所有域名
  • 简化证书管理

3. 不同顶级域名

场景

  • 拥有多个顶级域名
  • 如:example.com、example.net、example.org

优势

  • 一个证书保护所有顶级域名
  • 减少证书数量

八、多域名证书的注意事项

1. 域名规划

提前规划

  • 在申请证书前,确定需要保护的所有域名
  • 添加新域名需要重新申请证书
  • 建议预留一些域名位置

域名数量

  • 注意证书的域名数量限制
  • 不要添加不需要的域名
  • 定期清理不需要的域名

2. 验证要求

所有域名都需要验证

  • 每个域名都需要通过验证
  • 如果某个域名验证失败,整个证书申请失败
  • 确保所有域名都可以正常验证

验证方式可以不同

  • 不同域名可以使用不同的验证方式
  • 如:部分域名使用DNS验证,部分使用HTTP验证

3. 证书更新

更新时所有域名都需要重新验证

  • 证书更新时,所有域名都需要重新验证
  • 如果使用DNS授权,可以自动完成
  • 如果使用免DNS授权,需要手动更新所有域名的DNS记录

九、常见问题

1. 如何添加新域名

问题:证书申请后,如何添加新域名?

解决方法

  • 多域名证书不支持动态添加域名
  • 需要重新申请包含新域名的证书
  • 建议在申请时预留域名位置

2. 部分域名验证失败

问题:多个域名中,部分域名验证失败怎么办?

解决方法

  • 检查失败的域名验证配置
  • 确保DNS记录或HTTP验证文件正确
  • 重新提交验证

3. 证书包含不需要的域名

问题:证书中包含不需要的域名怎么办?

解决方法

  • 证书一旦签发,无法删除域名
  • 需要重新申请不包含该域名的证书
  • 建议在申请前仔细规划域名列表

十、多域名证书 vs 通配符证书

1. 对比

特性多域名证书通配符证书
保护范围明确的域名列表所有一级子域名
添加新域名需重新申请无需操作
主域名保护✅ 可以包含❌ 不包含
不同顶级域名✅ 支持❌ 不支持
价格中等较高

2. 选择建议

选择多域名证书

  • 需要保护完全不同的域名
  • 域名数量固定且明确
  • 需要保护主域名

选择通配符证书

  • 有大量子域名
  • 子域名动态增加
  • 只需要保护子域名

总结

多域名SSL证书是保护多个域名的理想选择,特别适合拥有多个品牌、多个顶级域名或主域名加多个子域名的场景。通过OHTTPS、acme.sh或Certbot等工具,可以轻松申请和管理多域名证书。

关键要点

  • ✅ 一个证书保护多个域名
  • ✅ 所有域名都需要验证
  • ✅ 添加新域名需要重新申请
  • ✅ 建议提前规划域名列表
  • ✅ 使用自动化工具管理证书

如果您需要申请多域名证书,推荐使用OHTTPS平台,它提供了友好的界面和自动化管理功能,让多域名证书的申请和管理变得简单高效。

OHTTPS: 免费HTTPS证书/SSL证书申请 • 自动化更新、部署、监控
OHTTPS 支持通过多种域名验证方式(DNS验证、HTTP验证、文件验证等)申请免费的HTTPS证书/SSL证书,包括单域名证书、多域名证书、通配符证书、IP证书等,支持HTTPS证书/SSL证书的自动化更新、自动化部署、自动化监控及告警等,并支持将HTTPS证书/SSL证书自动化部署至阿里云、腾讯云、群晖NAS、百度云、七牛云、多吉云、又拍云、宝塔面板、Docker容器、SSH等,实现HTTPS证书/SSL证书的一站式申请、更新、部署、监控和管理。