openssl-req文档:https://www.openssl.org/docs/man3.0/man1/openssl-req.html
纯命令行的形式:
openssl req -new -key ca.pem -out ca.csr -subj “/OU=Self Sign CA/O=Self Sign/CN=Self Sign” -addext “keyUsage=critical,keyCertSign,cRLSign” -addext “basicConstraints=critical,CA:TRUE”
req:该选项指定我们要使用“req”子命令来生成CSR。
-new:该选项告诉OpenSSL创建一个新的CSR。
-key ca.pem:该选项指定在创建CSR时要使用的私钥文件的路径。
-out ca.csr:该选项指定要为创建的CSR使用的文件名。
-subj “/OU=Self Sign CA/O=Self Sign/CN=Self Sign”:该选项指定CSR的主题。在此例中,主题设置为通用名称“Self Sign”,组织单位“Self Sign CA”和组织“Self Sign”。
-addext “keyUsage=critical,keyCertSign,cRLSign”:该选项向CSR添加密钥用途扩展。密钥用途扩展指定证书中的公钥可以如何使用。
-addext “basicConstraints=critical,CA:TRUE”:该选项向CSR添加基本约束扩展。基本约束扩展指定证书是否可以用作CA(证书颁发机构)。在此例中,基本约束扩展指示证书可以用作CA。
使用配置文件的方式:
openssl req -new -key ca.pem -out ca.csr -config ca_openssl.cnf
-config ca_openssl.cnf:这个选项指定 OpenSSL 使用的配置文件,来指定 CSR 的各个属性。
ca_openssl.cnf
内容如下:
[req]
distinguished_name = req_distinguished_name
req_extensions = ext
[req_distinguished_name]
organizationName = Organization Name (eg, company)
organizationName_default = Self Sign
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Self Sign CA
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_max =