2016-04-28 115 views
5

我想在我自己签名的CA创建脚本中包含一个basicConstraints=CA:TRUE,pathlen:0约束条件,如果我不必为了简化我的过程,它会走很长的路。创建一个配置文件和一个适当的CA的所有文件夹结构。是否有通过命令行指定openssl cert的basicConstraints

我想创建一个中间证书,只能签署最终证书,而不是进一步的CA.我将使用bouncycastle签署所有进一步的证书,我需要为适当的CA创建的文件夹结构将不会被使用。

+0

这似乎不是关于软件开发的问题。此外,您不包括您目前使用的参数。通常,openssl.exe会在证书中自动包含带'Subject Type = 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 = Research/CN = CA Authority“'。可以添加'-extensions v3_ca'来引用'v3_ca'或默认的'openssl.cfg',但其中一个会得到相同的结果。 – 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'我希望有一种方法可以将basicConstraint添加到第二行 –

回答

7

你做不是需要创建一个OpenSSL配置文件或任何文件夹结构来创建一个使用OpenSSL的自签名证书。

例如,这里是一个最小的OpenSSL的配置文件可能包含设置基本的约束扩展为你问:

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

在这里,我使用OpenSSL创建从一个Bash shell中的自签名证书这种“配置文件”,只是,它不是一个文件 - 这是一个shell变量:

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

这是一个文件。你只是看不到它。但是,明确地提到它是一种双重主义的赞誉。 –