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 签发,改动域名需要重新签发并可能产生费用。