web-dev-qa-db-ja.com

Openssl x509v3拡張キー使用法

openssl.cfgファイルに次のような行を追加することにより、証明書の公開鍵を使用できる目的を指定できることを知っています。

extendedKeyUsage=serverAuth,clientAuth

しかし、作成する証明書がいくつかあり、それぞれが異なる拡張キー使用法を持っているので、コマンドラインで必要な属性を指定することは可能ですか(openssl.cfgファイルを使用せずに)?何かのようなもの:

openssl req -newkey rsa:4096 \
            -extendedKeyUsage "serverAuth,clientAuth" \
            -keyform PEM \
            -keyout server-key.pem \
            -out server-req.csr \
            -outform PEM

ありがとう!

33
David Caissy

次のようなものしか使用できません:

openssl -extensions mysection -config myconfig.cnf

およびmyconfig.cnf:

[mysection]
keyUsage         = digitalSignature
extendedKeyUsage = codeSigning

この機能へのコマンドラインインターフェイスを知りません。

31
patrikbeno

最終的には、いくつかの異なるopenssl.cfgファイルを作成し、-configまたは-extfileスイッチを使用して適切なファイルを参照しています。

10
David Caissy

処理と同じSAN openssl req -subj "/CN=client" -sha256 -new -key client-key.pem -out client.csr\ -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:example.com,DNS:www.example.com\nextendedKeyUsage=serverAuth,clientAuth"))

4
fatfatson