Ssl 未将使用者备选名称复制到已签名证书
我使用自签名CA证书签署其他证书。对于某些证书,我需要指定主题的备选名称。我可以在请求生成期间指定它们(Ssl 未将使用者备选名称复制到已签名证书,ssl,openssl,self-signed,ca,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 ]
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
我知道如何使用
opensslca…
命令,但我没有有效的[ca]
部分,我不想在不深入了解它的功能的情况下复制/粘贴它。因此,我希望存在另一个使用opensslx509…
命令的解决方案。只有opensslca
命令才能理解copy\u extensions
指令。使用opensslx509
命令无法将扩展从CSR复制到证书
相反,您应该在opensslx509
命令中指定所需的确切扩展名,使用与opensslreq
相同的指令。对不起,我还不能评论
除@frasertweedale外:
我使用配置文件生成了服务器证书
openssl req -new -out certificate.csr -key certificate_private_key.pem -sha256 -days 1825 -config certificate.conf
然后我做了
相反,您应该使用与OpenSSL req相同的指令,在OpenSSL x509命令中指定所需的确切扩展名
使用以下命令(我再次使用了相同的.conf文件):
这里有一个很好的文档: 创建x509证书请求时,您需要编写一个openssl conf文件,如下所示: 创建企业社会责任
openssl req -new -key server.key -out server.csr -config csr.conf
签署证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf
这帮了大忙
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf