rmdir.cn

openssl req -new

生成证书签名请求(CSR)

语法

openssl req -new -key 私钥文件 -out 请求文件 [-config 配置文件]

说明

适用于向 CA 申请证书前的第一步。命令根据私钥生成 CSR,其中包含公钥、主体信息和可选扩展(如 SAN)。现代浏览器只认 SAN,因此需要预先准备包含 subjectAltName 的配置文件。CSR 不含私钥,可以安全外发;私钥必须自行保留。

参数

  • -new必填

    生成新的证书请求

  • -key必填

    使用已有私钥生成请求

  • -subj

    直接指定主体,避免交互输入

  • -addext

    追加扩展,例如 subjectAltName=DNS:example.com

示例

为已有私钥生成 CSR

非交互方式指定主体与 SAN。

openssl req -new -key private.key -out request.csr -subj '/CN=example.com' -addext 'subjectAltName=DNS:example.com,DNS:www.example.com'

注意事项:CN 只作为兼容字段保留,真正生效的是 SAN。多个域名都要写进 subjectAltName,否则访问时会报名称不匹配。

确认 CSR 内容

提交给 CA 前自查扩展是否正确。

openssl req -in request.csr -noout -text | grep -A1 'Subject Alternative Name'

注意事项:确认域名书写无误。一旦 CA 签发,改动域名需要重新签发并可能产生费用。

参考资料