非対話形式でSSL証明書を作成する[終了]


28

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 = test@email.com
EOF

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

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


1
希望する結果の代わりに、何が起こっているのかの説明または出力を提供できますか?
パトリック

私は出力としてヘルプを取得しますopenssl req -x509 -config openssl.cnf -nodes -days 7300 -signkey server.key -out /etc/ssl/private/pure-ftpd.pem
-TheNiceGuy

問題がある場合は、エラーの出力を提供するのが最善です。私はあなたの問題が原因であると推測しています-signkey。これはopenssl req私のシステムでは有効なオプションではありません。:エラーメッセージは非常に最初の行としてこれを持っていますunknown option -signkey
パトリック・

その署名キーは、私が知っているように提供されたキーを使用するようにSSLに指示する必要がありますか?
TheNiceGuy

「証明書を作成する通常の方法」では、データの入力は求められません。何も出力させたくないですか?次にを使用します2> /dev/null
wingedsubmariner

回答:


51

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

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

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


まあそれは素晴らしい解決策です。コードをはるかに小さくします。ありがとう:D
TheNiceGuy

1
元の構成ファイルは変更しませんでした。これは、より複雑な証明書の代用になると考えたからです。-subj特にv3拡張機能とsubjectAltNameパラメーターを使用する場合は、パラメーターで表現できないいくつかの構成。
robbat2

1
-batch(非インタラクティブモード)を使用することもできます
エランH.

最初のコマンド-subjは基本的な有効なインラインCSRであるため、2番目のコマンドがキーと証明書を自動的に作成する場合、実行する前にキーが存在する必要があるようです。
dragon788

@ dragon788それを指摘してくれてありがとう。それを私が直した。
バハマト

1

探しているコマンドは次のとおりです。

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

バージョンからの変更:

  • -new 何かを生成するために必要です
  • -key の代わりに使用 -signkey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.