Openssl x509限制中间CA仅签署最终用户证书
我试图限制中间CA只对最终用户证书进行签名。但是,我不能这样做 x509v3_配置的手册页 basicConstraints=临界,CA:真,路径:0 CA证书必须包含CA的基本约束值 字段设置为TRUE。最终用户证书必须将CA设置为 FALSE或完全排除扩展名。某些软件可能需要 对于结束实体,包含CA设置为FALSE的基本约束 证书 pathlen参数表示链中可出现在该CA下方的CA的最大数量。所以如果你有一个CA和一个pathlen 如果为零,则它只能用于签署最终用户证书,而不是 进一步CAs 步骤1:创建自签名根CA-rootCA.crtOpenssl x509限制中间CA仅签署最终用户证书,openssl,ssl-certificate,x509,Openssl,Ssl Certificate,X509,我试图限制中间CA只对最终用户证书进行签名。但是,我不能这样做 x509v3_配置的手册页 basicConstraints=临界,CA:真,路径:0 CA证书必须包含CA的基本约束值 字段设置为TRUE。最终用户证书必须将CA设置为 FALSE或完全排除扩展名。某些软件可能需要 对于结束实体,包含CA设置为FALSE的基本约束 证书 pathlen参数表示链中可出现在该CA下方的CA的最大数量。所以如果你有一个CA和一个pathlen 如果为零,则它只能用于签署最终用户证书,而不是 进一步CA
openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -out rootCA.crt
步骤2:使用以下配置文件创建证书签名请求
openssl req -new -config extension.conf -out intermediate.csr
CSR现在生成
步骤3:现在使用扩展文件支持的自签名根CA对CSR进行签名
openssl x509 -req -in intermediate.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -extensions v3_req -extfile file.txt -out intermediate.crt -sha256
file.txt
[ v3_req ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
现在生成了中间证书
步骤4:再创建一个中间证书,并将其称为测试证书-使用经过适当修改的配置文件,如下所示:
[ req ]
default_bits = 4096
default_md = sha256
prompt = no
encrypt_key = no
default_keyfile = privkey.key
distinguished_name = req_distinguished_name
req_extensions = v3_req
[ req_distinguished_name ]
countryName = DE
stateOrProvinceName = Berlin
localityName = Berlin
0.organizationName = Dummy AG
organizationalUnitName = Product
emailAddress = product.dept@dummy.de
[ v3_req ]
basicConstraints = critical,CA:true
keyUsage = keyCertSign
产生企业社会责任
openssl req -new -config test.conf -out TEST.csr
在CSR上签名为intermediate.crt,这是不可能的
openssl x509 -req -in TEST.csr -CA intermediate.crt -CAkey privkey.key -CAcreateserial -out TEST.crt -sha256
根据x509v3_config的man页面,TEST.csr的签名应该失败,因为它不是最终用户证书
在我的中间证书中,路径为0。所以我不应该在TEST.csr上签名。我做错了什么?请有人解释一下好吗?对您的最后一个证书进行验证。它是否被认为是有效的?如果没有,那么一切都好。这是交叉张贴到,可能是一个更好的适合那里。我建议在这里关闭它。因为我不确定哪个是正确的论坛,我在两个网站上都发了帖子。我会关上这个。非常感谢。
openssl x509 -req -in TEST.csr -CA intermediate.crt -CAkey privkey.key -CAcreateserial -out TEST.crt -sha256