2025-05-21 20:44:32
933

如何正确生成支持多域名的SAN证书?

摘要
本文详细解析通过OpenSSL生成多域名SAN证书的全流程,涵盖环境准备、CA根证书创建、CSR文件配置、证书签发及服务器部署验证,适用于需要统一管理多域名SSL证书的开发运维场景。...

一、SAN证书核心概念

SAN证书(Subject Alternative Name)允许在单个SSL/TLS证书中保护多个域名、子域名或IP地址,适用于多域名网站和虚拟化环境。其技术原理是在X.509扩展字段中声明subjectAltName属性,支持同时绑定多个主体标识。

如何正确生成支持多域名的SAN证书?

二、准备生成环境

需安装OpenSSL工具链并创建配置文件:

san.conf示例配置
[ req ]
default_bits = 2048
req_extensions = v3_req
distinguished_name = req_distinguished_name
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = www.example.com
DNS.2 = mail.example.org
IP.1 = 192.168.1.1

配置文件需包含req_extensionssubjectAltName字段定义多域名列表。

三、生成CA根证书

执行以下命令序列:

  1. 生成CA私钥:openssl genrsa -out ca.key 4096
  2. 创建CSR请求:openssl req -new -key ca.key -out ca.csr
  3. 自签根证书:openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

建议使用-subj参数批量提交证书信息避免交互式输入。

四、创建多域名CSR文件

通过配置文件生成服务器私钥和CSR:

  1. 生成私钥:openssl genpkey -algorithm RSA -out server.key
  2. 生成CSR:openssl req -new -key server.key -out server.csr -config san.conf

CSR文件中必须包含subjectAltName扩展字段声明所有待保护域名。

五、签发SAN证书

使用CA证书签署服务器CSR:

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -extfile san.conf -extensions v3_req

通过-extfile参数加载SAN配置,确保生成证书包含多域名扩展。

六、部署与验证

在Web服务器中配置证书文件:

  • Apache示例:
    SSLCertificateFile /path/server.crt
    SSLCertificateKeyFile /path/server.key
  • Nginx示例:
    ssl_certificate /path/server.crt;
    ssl_certificate_key /path/server.key;

可通过openssl x509 -in server.crt -text -noout验证证书SAN字段完整性。

通过OpenSSL工具链生成SAN证书需重点关注CSR配置中的多域名声明和CA签发流程,建议采用自动化脚本减少人工操作错误。对于生产环境,推荐使用Let’s Encrypt等CA机构签发免费证书以实现自动续期。

声明:文章不代表云主机测评网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部