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

时间:2015-11-29 23:01:01

标签: ssl openssl self-signed ca

我使用自签名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。

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

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:2)

这里有一个很好的文档:Certificates

在创建如下所示的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

答案 2 :(得分:1)

对不起,我还不能发表评论。

除了@frasertweedale:

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

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

然后我做了

  

相反,您应该使用与OpenSSL请求相同的指令,在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