2025-05-21 20:48:53
729

如何生成支持多域名的自签名证书?

摘要
本文详细讲解使用OpenSSL生成支持多域名的自签名证书流程,涵盖CA证书创建、SAN扩展配置、CSR生成等关键步骤,适用于开发测试环境搭建HTTPS服务。通过修改openssl.cnf配置文件实现多域名/IP支持,并提供完整的命令示例和验证方法。...

一、准备工作与环境配置

在开始生成证书前,需要安装OpenSSL工具并准备配置文件。Linux系统通常预装OpenSSL,Windows用户需手动安装并配置环境变量。建议新建工作目录存放证书文件,避免与系统文件混淆。

二、生成CA根证书

通过以下步骤创建自签名CA证书:

  1. 生成CA私钥:openssl genrsa -out ca.key 4096
  2. 创建自签名证书openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt

需按提示输入证书信息,其中Common Name建议设置为机构名称。

三、配置多域名支持

修改openssl.cnf配置文件实现多域名支持:

  • 启用req_extensions:取消[req]块中req_extensions = v3_req的注释
  • [v3_req]块添加:subjectAltName = @alt_names
  • 文件末尾添加域名配置:
    [alt_names]
    DNS.1 = domain1.com
    DNS.2 = domain2.com
    IP.1 = 192.168.1.100

四、生成服务器证书

分三步创建服务器证书:

  1. 生成私钥:openssl genrsa -out server.key 2048
  2. 创建CSR请求:openssl req -new -key server.key -out server.csr -config openssl.cnf
  3. 使用CA签名:openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile openssl.cnf -extensions v3_req

五、部署与验证

将生成的server.crt和server.key部署到Web服务器(Nginx/Apache)。浏览器访问时需导入ca.crt到受信任根证书颁发机构,避免安全警告。可通过openssl x509 -in server.crt -text -noout验证SAN字段是否包含配置的域名。

通过合理配置openssl.cnf文件,使用OpenSSL工具链可生成支持多域名的自签名证书。该方案适用于开发测试环境,但生产环境建议使用可信CA签发的证书。需注意证书有效期管理,推荐设置自动续期脚本。

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