通配符SSL证书是一种特殊的SSL证书,可以保护一个域名及其所有一级子域名。例如,*.example.com可以保护www.example.com、api.example.com、blog.example.com等所有一级子域名。本文将详细介绍如何申请通配符SSL证书,包括申请流程、DNS验证、使用场景和注意事项。
一、什么是通配符证书?
1. 通配符证书的定义
通配符证书使用通配符()来保护一个域名及其所有一级子域名。通配符证书的域名格式为:`.example.com`
2. 通配符证书的保护范围
保护范围:
- ✅ www.example.com
- ✅ api.example.com
- ✅ blog.example.com
- ✅ shop.example.com
- ✅ 任何一级子域名
不保护的范围:
- ❌ example.com(主域名)
- ❌ sub.www.example.com(二级子域名)
3. 通配符证书的优势
- ✅ 一个证书保护所有一级子域名
- ✅ 添加新子域名无需重新申请证书
- ✅ 管理方便,只需管理一张证书
- ✅ 适合有大量子域名的场景
二、通配符证书的申请要求
1. 验证方式
通配符证书只能使用DNS验证:
- 不能使用HTTP验证
- 必须在DNS服务商添加TXT记录
- 验证主域名的控制权
2. 支持的CA
免费通配符证书:
- Let's Encrypt(通过OHTTPS、acme.sh等)
- FreeSSL.cn
付费通配符证书:
- DigiCert
- Sectigo
- GlobalSign
- 其他商业CA
3. 证书类型
通配符证书通常只提供DV(域名验证)类型:
- 不提供OV(组织验证)通配符证书(部分CA提供)
- 不提供EV(扩展验证)通配符证书
三、使用OHTTPS申请免费通配符证书
1. 创建证书申请
- 登录OHTTPS平台
- 进入"证书管理"
- 点击"创建证书"
- 选择验证方式(DNS授权或免DNS授权)
2. 填写域名信息
- 证书名称:为证书起一个名称
- 域名:输入通配符域名
*.example.com - 注意:通配符证书不保护主域名,如果需要保护主域名,需要单独添加
3. DNS验证
DNS授权验证模式:
- 选择已创建的DNS授权
- 系统自动添加DNS验证记录
- 等待验证完成
免DNS授权验证模式:
- 系统显示需要添加的CNAME记录
- 在DNS服务商处添加CNAME记录
- 等待DNS解析生效
- 系统自动完成验证
4. 等待证书签发
验证通过后,系统自动申请证书:
- 通常几分钟内完成
- 证书有效期90天
- 支持自动更新
四、使用acme.sh申请通配符证书
1. 安装acme.sh
curl https://get.acme.sh | sh
2. 配置DNS API
以Cloudflare为例:
export CF_Email="your-email@example.com"
export CF_Key="your-api-key"
3. 申请通配符证书
~/.acme.sh/acme.sh --issue -d "*.example.com" --dns dns_cf
4. 安装证书
~/.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. 安装Certbot
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install certbot
# 安装DNS插件(以Cloudflare为例)
sudo apt-get install python3-certbot-dns-cloudflare
2. 配置DNS凭证
创建凭证文件 /etc/letsencrypt/cloudflare.ini:
dns_cloudflare_email = your-email@example.com
dns_cloudflare_api_key = your-api-key
设置文件权限:
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
3. 申请通配符证书
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d "*.example.com"
4. 配置自动更新
sudo certbot renew --dry-run
六、通配符证书的配置
1. Nginx配置
server {
listen 443 ssl;
server_name *.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
# 其他配置...
}
2. Apache配置
<VirtualHost *:443>
ServerName *.example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.pem
</VirtualHost>
3. 同时保护主域名
如果需要同时保护主域名和所有子域名,可以:
方案1:使用多域名证书
- 申请包含
example.com和*.example.com的多域名证书
方案2:使用两个证书
- 一个单域名证书保护
example.com - 一个通配符证书保护
*.example.com
七、通配符证书的使用场景
1. SaaS平台
场景:
- 每个客户一个子域名
- 如:client1.example.com、client2.example.com
优势:
- 一个证书保护所有客户子域名
- 添加新客户无需重新申请证书
2. 多服务架构
场景:
- 不同服务使用不同子域名
- 如:api.example.com、www.example.com、admin.example.com
优势:
- 统一管理证书
- 简化证书配置
3. 开发测试环境
场景:
- 多个开发环境使用不同子域名
- 如:dev.example.com、test.example.com、staging.example.com
优势:
- 一个证书覆盖所有环境
- 方便管理和部署
八、通配符证书的注意事项
1. 安全考虑
私钥安全:
- 通配符证书的私钥非常重要
- 如果私钥泄露,所有子域名都会受影响
- 必须妥善保管私钥
访问控制:
- 确保证书和私钥的访问权限
- 使用适当的文件权限
- 定期轮换证书和密钥
2. 技术限制
只保护一级子域名:
*.example.com不保护sub.www.example.com- 如果需要保护二级子域名,需要单独申请
不保护主域名:
*.example.com不保护example.com- 如果需要保护主域名,需要单独添加
3. 证书更新
自动更新:
- 使用OHTTPS或acme.sh可以自动更新
- 确保证书在到期前更新
DNS验证:
- 每次更新都需要DNS验证
- 如果使用DNS授权,可以自动完成
- 如果使用免DNS授权,需要手动更新DNS记录
九、常见问题
1. 通配符证书不保护主域名
问题:*.example.com 不保护 example.com
解决方法:
- 申请包含主域名的多域名证书
- 或使用两个证书分别保护
2. DNS验证失败
可能原因:
- DNS记录未生效
- DNS记录格式错误
- 验证超时
解决方法:
- 检查DNS记录是否正确
- 等待DNS解析生效
- 使用DNS授权模式自动验证
3. 证书安装后不生效
可能原因:
- 证书配置错误
- 服务器配置错误
- 证书链不完整
解决方法:
- 检查证书配置
- 检查服务器配置
- 使用完整链文件
总结
通配符SSL证书是保护多个子域名的理想选择,特别适合SaaS平台、多服务架构等场景。通过OHTTPS、acme.sh或Certbot等工具,可以轻松申请和管理通配符证书。
关键要点:
- ✅ 通配符证书只能使用DNS验证
- ✅ 只保护一级子域名
- ✅ 不保护主域名(需要单独添加)
- ✅ 私钥安全非常重要
- ✅ 建议使用自动化工具管理证书
如果您需要申请通配符证书,推荐使用OHTTPS平台,它提供了友好的界面和自动化管理功能,让通配符证书的申请和管理变得简单高效。
OHTTPS: 免费HTTPS证书/SSL证书申请 • 自动化更新、部署、监控
OHTTPS 支持通过多种域名验证方式(DNS验证、HTTP验证、文件验证等)申请免费的HTTPS证书/SSL证书,包括单域名证书、多域名证书、通配符证书、IP证书等,支持HTTPS证书/SSL证书的自动化更新、自动化部署、自动化监控及告警等,并支持将HTTPS证书/SSL证书自动化部署至阿里云、腾讯云、群晖NAS、百度云、七牛云、多吉云、又拍云、宝塔面板、Docker容器、SSH等,实现HTTPS证书/SSL证书的一站式申请、更新、部署、监控和管理。