主题备用名称未复制到签名证书

问题描述 投票:0回答:4

我使用自签名的CA证书来签署其他证书。对于某些证书,我需要指定主题备用名称。我可以在请求生成期间指定它们 (

openssl req ...
),并且我可以在 .csr 文件中看到它们。然后我使用

使用 CA 证书对其进行签名
openssl x509 -req -extensions x509v3_config -days 365 -in ${name}.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ${name}.crt

以及 openssl.cnf 文件中的下一部分:

[ x509 ]
x509_extensions = x509v3_config

[ x509v3_config ]
copy_extensions = copy

但我在 .crt 文件中没有看到 SAN。

我知道带有 openssl ca ... 命令的

解决方案
,但我没有有效的
[ca]
部分,我不想在没有深入了解它的作用的情况下复制/粘贴它。所以我希望存在另一个使用
openssl x509 ...
命令的解决方案。

ssl openssl self-signed ca
4个回答
13
投票

copy_extensions
指令只能被
openssl ca
命令理解。无法使用
openssl x509
命令将扩展从 CSR 复制到证书。

相反,您应该指定所需的 exact 扩展作为

openssl x509
命令的一部分,使用与
openssl req
相同的指令。


6
投票

抱歉,我还不能发表评论。

除了@frasertweedale:

我使用配置文件生成了我的服务器证书

openssl req -new -out certificate.csr -key certificate_private_key.pem -sha256 -days 1825 -config certificate.conf 

然后我就这么做了

相反,您应该使用与 OpenSSL req 相同的指令,在 OpenSSL x509 命令中指定所需的确切扩展名。

使用以下命令(我再次使用相同的.conf文件):

openssl x509 -req -in certificate.csr -CA ca-root-public-certificate.pem -CAkey ca-key.pem -CAcreateserial -out certificate_public.pem -sha256 -days 1825 -extfile certificate.conf -extensions v3_req

2
投票

这里有一个很好的文档:证书

在创建 x509 证书请求时,您需要编写一个 openssl conf 文件,如下所示:

创建企业社会责任

openssl req -new -key server.key -out server.csr -config csr.conf

签署CERT

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf

0
投票

您现在可以使用 copy_extensions 标志来解决此问题。 因此将其用作标志的正确方法如下所示: -copy_extensions=全部复制 请注意,该值可以根据要求而不同。

© www.soinside.com 2019 - 2024. All rights reserved.