以非交互方式创建 SSL 证书

The*_*Guy 42 scripting ssl

我想默默地,非交互地,创建一个 SSL 证书。即,没有得到任何数据的提示。

我创建证书的正常方式是:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = test@email.com
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 
Run Code Online (Sandbox Code Playgroud)

但我仍然收到输入数据的提示。

bah*_*mat 85

您缺少的是在-subj标志中包含证书主题。与创建配置文件相比,我更喜欢这样做,因为它更容易集成到工作流程中,而且不需要事后清理。

一步键和CSR生成:

openssl req -new -newkey rsa:4096 -nodes \
    -keyout www.example.com.key -out www.example.com.csr \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
Run Code Online (Sandbox Code Playgroud)

一步自签名无密码证书生成:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key  -out www.example.com.cert
Run Code Online (Sandbox Code Playgroud)

这些命令都不会提示输入任何数据。

在超级用户上查看我对这个几乎相同问题的回答。

  • 您还可以使用“-batch”(非交互模式) (3认同)