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

4yb*_*aka 6 ssl openssl ca self-signed

我使用自签名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
Run Code Online (Sandbox Code Playgroud)

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

[ x509 ]
x509_extensions = x509v3_config

[ x509v3_config ]
copy_extensions = copy
Run Code Online (Sandbox Code Playgroud)

但我在.crt文件中看不到SAN.

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

fra*_*ale 7

copy_extensions指令只能由了解openssl ca命令.使用该openssl x509命令无法将扩展从CSR复制到证书.

相反,您应该使用您用于的相同指令,在命令中指定所需的确切扩展名.openssl x509openssl req


小智 7

对不起,我不能评论(还)。

除了@frasertweedale :

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

openssl req -new -out certificate.csr -key certificate_private_key.pem -sha256 -days 1825 -config certificate.conf 
Run Code Online (Sandbox Code Playgroud)

然后我做了

相反,您应该使用与用于 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
Run Code Online (Sandbox Code Playgroud)