web-dev-qa-db-ja.com

非インタラクティブに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 

私は以下を試しました:

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 = [email protected]
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

しかし、まだデータのプロンプトが表示されます。

32
TheNiceGuy

不足しているのは、証明書のサブジェクトを-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"

ワンステップの自己署名パスワードなし証明書の生成:

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

これらのコマンドはいずれも、データを要求しません。

これに対する私の答えを参照してください ほぼ同じ質問 スーパーユーザー。

60
bahamat

あなたが探しているコマンドは:

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

バージョンからの変更:

  • -newは何かを生成するために必要です
  • -keyの代わりに使用-signkey
1
robbat2