2016-04-28 15 views
5

自己署名付きCA作成スクリプトにbasicConstraints=CA:TRUE,pathlen:0という制約を含めることができます。手順を簡略化するには非常に時間がかかります設定ファイルと適切なCAのすべてのフォルダ構造を作成します。コマンドラインからopenssl certのbasicConstraintsを指定する方法はありますか

私は、末尾の証明書だけを署名できる中間証明書を作成しようとしています。それ以上のCAは署名しません。私はすべてのさらなる証明書に署名するためにbouncycastleを使用します、私が適切なCAのために作成する必要があるフォルダ構造はとにかく使用されません。

+0

ソフトウェア開発については疑問のようです。さらに、現在使用しているパラメータは含まれていません。通常、openssl.exeは 'SubjectCode = CA'と' Path Length Constraint = None'を自動的に 'basicConstraints'を証明書に含めます。私は 'openssl ecparam -out myCA.key -name secp384r1 -genkey'と' openssl req -x509 -new -sha384 -key myCA.key -out myCA.pem -outform PEM -days 3650 -subj」/ C = DE/O = OK soft GmbH/OU =リサーチ/ CN = CA権限 "。 'v3_ca'またはデフォルトの' openssl.cfg'を参照するために '-extensions v3_ca'を追加できますが、同じ結果が得られます。 – Oleg

+0

'openssl.cfg'の' req'セクションに 'x509_extensions = v3_ca'エントリが含まれていることを確認することをお勧めします。 CAの証明書を(openssl req ... 'を使用しないで)何らかの方法で作成するだけで、問題の原因になると思います。 – Oleg

+0

私はこれでCAを作成します: 'openssl genrsa -des3 -out $ KEYS_DIR/ca.key 4096' ' openssl req -new -x509 -days 36500 -key $ KEYS_DIR/ca.key -out $ KEYS_DIR/ca .crt' 2番目の行にbasicConstraintを追加する方法があると期待していた –

答えて

7

あなたはではありません。 OpenSSLを使用して自己署名入りの証明書を作成するには、OpenSSL設定ファイルまたは任意のフォルダ構造を作成する必要があります。例えば、ここでは最小限のOpenSSLの設定ファイルは、あなたが尋ねると、基本的な制約拡張を設定することが含まれているかもしれないもの

されています:

[req] 
distinguished_name=dn 
[ dn ] 
[ ext ] 
basicConstraints=CA:TRUE,pathlen:0 

そして、ここで私がBashシェルからOpenSSLを使用して自己署名証明書を作成この「設定ファイル」、のみ、それはファイルではない - それは、シェル変数です:

CONFIG=" 
[req] 
distinguished_name=dn 
[ dn ] 
[ ext ] 
basicConstraints=CA:TRUE,pathlen:0 
" 

openssl req -config <(echo "$CONFIG") -new -newkey rsa:2048 -nodes \ 
    -subj "/CN=Hello" -x509 -extensions ext -keyout key.pem -out crt.pem 

幸運!

+1

ファイルです。あなたはただそれを見ない。しかし、それは明白にbashismであると言いました。 –

関連する問題