2015-11-29 25 views
4

我使用自簽名CA證書籤署其他證書。對於某些證書,我需要指定主題替代名稱。我可以在請求生成過程中指定它們(openssl req ...),並在.csr文件中看到它們。然後,我在openssl.cnf中的文件使用主題備用名稱未複製到簽名證書

openssl x509 -req -extensions x509v3_config -days 365 -in ${name}.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ${name}.crt 

接下來的章節CA證書和簽名:

[ x509 ] 
x509_extensions = x509v3_config 

[ x509v3_config ] 
copy_extensions = copy 

,但我看不出在SAN中.crt文件。

我知道約solutionsopenssl ca ...命令,但我沒有有效的[ca]部分,我不想複製/粘貼它沒有深入瞭解它的作用。所以我希望能用openssl x509 ...這個命令存在另一個解決方案。

回答

5

copy_extensions指令只能被openssl ca命令所理解。使用openssl x509命令無法將擴展從CSR複製到證書。

相反,你應該指定要爲openssl x509命令的一部分,確切擴展,使用時使用的openssl req相同的指令。

0

對不起,我還不能評論(還)。

除了@frasertweedale:

我產生我的服務器證書與配置文件

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

我然後做

相反,你應該指定要確切擴展作爲OpenSSL x509命令的一部分,使用您用於OpenSSL req的相同指令。

使用下面的命令(I再次使用相同的.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