38

我知道如何使用 签署 CSR openssl,但结果证书是 x509 v1,而不是 v3。

我正在使用以下命令:

x509 -req -days 365 -in myCSR.csr -CA myCA.crt -CAkey myCA.key -CAcreateserial -out userCertificate.crt

我已经搜索但无法找到解决方案。有没有另一种方法可以以编程方式做到这一点?

4

2 回答 2

51

您需要指定一个扩展文件。

例如:

openssl x509 -days 365 -in myCSR.csr -extfile v3.ext -CA myCA.crt -CAkey myCA.key -CAcreateserial -out userCertificate.crt

扩展文件 (v3.ext) 可能如下所示:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
于 2013-08-14T21:35:30.087 回答
3

如果您也有 -req ,则 gtrig 的答案也有效。没有它对我来说是行不通的。

所以命令是:

openssl x509 -req -in myCSR.csr -extfile v3.ext -CA myCA.crt -CAkey myCA.key -CAcreateserial -out userCertificate.crt  -days 365

(不得不给出一个新的答案,因为我没有足够的代表发表评论)。

于 2021-01-29T19:25:11.667 回答