{{item}}
{{item.title}}
{{items.productName}}
{{items.price}}/年
{{item.title}}
部警SSL证书可实现网站HTTPS加密保护及身份的可信认证,防止传输数据的泄露或算改,提高网站可信度和品牌形象,利于SEO排名,为企业带来更多访问量,这也是网络安全法及PCI合规性的必备要求
前往SSL证书早期SSL证书仅支持绑定单个域名(通过“主题”字段,简称CN),但随着业务发展,企业常需为多个域名(如主域名、子域名、不同后缀域名)部署HTTPS,传统单域名证书需重复申请、管理繁琐。SAN(主题备用名称)的出现底解决了这一痛点,成为多域名SSL证书的核心技术标准。本文将从底层原理、实现机制、应用场景到配置实践,全面拆解SAN的技术细节。
SAN是X.509证书标准(SSL/TLS证书的基础规范)中的扩展字段(Extension),编号为 2.5.29.17 ,用于在单张证书中绑定多个身份标识,包括:
其中,DNS名称是最常用的SAN类型,也是多域名SSL证书的核心应用场景。
SSL证书本质是遵循X.509标准的数字文件,其结构可分为“主题区域”和“扩展区域”,SAN位于扩展区域,采用ASN.1(抽象语法标记)编码格式:
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER, -- SAN的OID为2.5.29.17
critical BOOLEAN DEFAULT FALSE, -- 非关键扩展,证书缺失SAN仍可正常使用(单域名场景)
extnValue OCTET STRING -- 存储多个备用名称的编码数据
}
SubjectAltName ::= GeneralNames
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName ::= CHOICE {
dNSName IA5String, -- DNS域名(最常用)
iPAddress OCTET STRING, -- IP地址(4字节IPv4/16字节IPv6)
rfc822Name IA5String, -- 电子邮件
uniformResourceIdentifier IA5String, -- URI
... -- 其他支持的标识类型
}(1)证书申请阶段(CSR生成)
用户需在证书签名请求(CSR)中指定SAN字段,告知CA(证书颁发机构)需绑定的多个域名:
# 创建配置文件san.cnf,指定SAN域名
cat > san.cnf << EOF
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = CN
stateOrProvinceName = Beijing
localityName = Beijing
organizationName = Example Corp
commonName = example.com # 备用CN,优先使用SAN
[v3_req]
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = api.example.com
IP.1 = 192.168.1.100 # 同时绑定IP
EOF
# 生成私钥和包含SAN的CSR
openssl req -new -key example.key -out example.csr -config san.cnfopenssl req -text -noout -in example.csr | grep -A 10 "Subject Alternative Name"(2)CA颁发证书阶段
CA审核CSR后,会根据请求中的SAN字段生成证书,将多个域名写入证书的 SubjectAltName 扩展字段,并通过CA的私钥签名确认证书有效性。
(3)客户端验证阶段(HTTPS握手时)
当浏览器访问HTTPS网站时,会通过以下流程验证SAN:
SAN支持两种核心匹配模式,遵循RFC 6125(域名验证标准):
(1)精确匹配:访问域名需与SAN中的域名完全一致(如SAN为example.com,仅匹配example.com,不匹配www.example.com);
(2)通配符匹配:仅支持单级通配符( * ),且 * 必须位于域名最左侧,如:
(1)适用场景:同一企业的多个独立域名(如example.com、example.cn、example.org);
(2)特点:SAN中可添加多个不同根域名,数量通常为5-100个(根据CA套餐而定);
(3)典型案例:电商平台同时拥有shop.com、pay.shop.com、member.shop.com,通过一张多域名证书实现全站点HTTPS。
(1)适用场景:同一根域名下的所有二级子域名(如*.example.com);
(2)特点:SAN中仅需添加一个通配符域名,即可覆盖所有二级子域名,无需逐一添加;
(3)注意事项:
(1)适用场景:内网服务(如服务器IP为192.168.1.1)同时对外提供域名访问和IP访问;
(2)特点:SAN中可同时添加DNS名称和IP地址,满足特殊场景(如物联网设备、内网系统);
(3)示例:SAN包含iot.example.com+192.168.1.100,设备可通过域名或IP访问,均能通过HTTPS验证。
(1)适用场景:企业的开发、测试、生产环境使用不同子域名(如dev.example.com、test.example.com、prod.example.com);
(2)特点:通过一张证书覆盖所有环境域名,简化测试环境HTTPS配置,避免重复申请证书。
server {
listen 443 ssl;
server_name example.com www.example.com api.example.com; # 与SAN中的域名对应
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # 包含SAN的证书
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 其他SSL配置...
}# 查看证书中的SAN字段
openssl x509 -text -noout -in fullchain.pem | grep -A 10 "Subject Alternative Name"Let's Encrypt支持通过Certbot快速生成包含SAN的免费证书:
certbot certonly --nginx -d example.com -d www.example.com -d api.example.comcertbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com(1)SAN域名数量限制
(2)通配符证书的局限性
(3)旧系统兼容性问题
(4)证书吊销风险
SAN作为X.509标准的核心扩展,彻底改变了SSL证书的应用模式,从“单域名绑定”走向“多身份集成”,成为企业HTTPS部署的基础技术。理解SAN的底层实现机制、匹配规则和应用场景,不仅能帮助运维人员高效配置证书,还能根据业务需求选择最优的证书类型(多域名、通配符、混合证书)。
Dogssl.com拥有20年网络安全服务经验,提供构涵盖国际CA机构Sectigo、Digicert、GeoTrust、GlobalSign,以及国内CA机构CFCA、沃通、vTrus、上海CA等数十个SSL证书品牌。全程技术支持及免费部署服务,如您有SSL证书需求,欢迎联系!