我想默默地,非交互地,创建一个 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)
这些命令都不会提示输入任何数据。
在超级用户上查看我对这个几乎相同问题的回答。