web-dev-qa-db-ja.com

国/一般名のプロンプトをスキップしてopensslを作成することは可能ですか?

次のようなプロンプトをスキップするopensslを作成する方法はありますか

Country Name (2 letter code) [US]:
Organization Name (eg, company) [My Company Name LTD.]:
Common Name (eg, YOUR name) [something]:

で証明書を作成中

openssl req -config openssl.cnf -new -x509 ...

これらのパラメータはopenssl.cnfファイル

例えば.

countryName         = Country Name (2 letter code)
countryName_default     = US
countryName_min     = 2
countryName_max     = 2
0.organizationName      = Organization Name (eg, company)
0.organizationName_default  = My Company Name LTD.
commonName          = Common Name (eg, YOUR name)
commonName_max      = 64
commonName_default      = ${ENV::CN}
70

@ indiv に感謝

これによると ガイド-subjは進むべき道です。例えば.

-subj '/CN=www.mydom.com/O=My Company Name LTD./C=US'
110

別の解決策は、構成ファイルでPromptディレクティブを使用することです。
OpenSsl:構成ファイル形式 」を参照

Prompt

noに設定すると、証明書フィールドのプロンプトが無効になり、設定ファイルから直接値が取得されます。また、distinguished_nameおよびattributesセクションの予期される形式も変更します。

distinguished nameセクションとattributeセクションには2つの別個の形式があります。

プロンプトオプションがnoに設定されている場合、これらのセクションはフィールド名と値のみで構成されます:たとえば、

 CN=My Name
 OU=My Organization
 [email protected]

これにより、外部プログラム(GUIベースなど)がすべてのフィールド名と値を含むテンプレートファイルを生成し、reqに渡すことができます。

または、プロンプトオプションが指定されていないか、noに設定されていない場合、ファイルにはフィールドプロンプト情報が含まれます。次の形式の行で構成されます。

 fieldName="Prompt"
 fieldName_default="default field value"
 fieldName_min= 2
 fieldName_max= 4
30
VonC

構成ファイルを生成し、[req]セクションにPrompt = noと入力できます。

例えば:

[req]
Prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
C = US
ST = California
L = Los Angeles
O = Our Company Llc
#OU = Org Unit Name
CN = Our Company Llc
#emailAddress = [email protected]

[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com

次に、実行するだけです.

openssl req -new -sha256 -config THATFILE.conf -key example.com.key -out example.com.csr
11
FlorianB

混合アプローチはサポートされていません

Openssl.cnfにいくつかの静的フィールドを置き、-subjオプション。ただし、それは機能しません。

シナリオをテストしました

  • c、ST、L、O、およびOUをopenssl.cnfセクションに入れますreq_distinguished_nameおよび
  • 実行openssl req with -subj=/CN=www.mydom.com

opensslは、必須の国名フィールドが欠落しており、生成された証明書の件名にCNが含まれていることを訴えました。のように思える -subjオプションは、件名を完全に上書きし、単一フィールドの更新を許可しません。

これにより、サブジェクトフィールドを提供する次の3つのアプローチすべてが互いに排他的になります。

  • プロンプト
  • 設定ファイル
  • -subjオプション
1
Mohammad Azim