2014-01-17 77 views
1

我想创建一个带有主题密钥标识符的RSA算法密钥大小2048的自签名证书。我知道我们在openssl.conf中做了一些默认更改。我想改变什么?使用主题密钥标识符创建自签名证书

genrsa -des3 -out mcedt.key 2048 
req -new -key mcedt.key -out mcedt.csr 
CN = server.test , OU =, O =, L = Toronto, S = ontario , C = can 
x509 -req -days 365 -in mcedt.csr -signkey mcedt.key -out mcedt.crt 
pkcs12 -export -in mcedt.crt -inkey mcedt.key -out mcedt.pfx 
+0

你好,我看你一直在使用MCEDT。你使它正常工作吗? –

+0

[如何使用openssl创建自签名证书?](http://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl)可能有重复。确保'subjectKeyIdentifier = hash'位于CONF文件的'[x509_ext]'区域。你也应该包含一个权限密钥标识符。为此,'authorityKeyIdentifier = keyid,issuer'。 – jww

回答

2

您可以创建一个有以下信息的扩展文件(extensions.cnf):由OpenSSL的提到

subjectKeyIdentifier=hash 

这确实是一个字符串的扩展,可以采取两个可能的值。 可能会自动遵循 RFC3280中的指导或者给出包含扩展值的十六进制字符串。强烈建议不要使用十六进制字符串的使用 。

那么你应该改变

x509 -req -days 365 -in mcedt.csr -signkey mcedt.key -out mcedt.crt 

x509 -req -days 365 -extfile extensions.cnf -in mcedt.csr -signkey mcedt.key -out mcedt.crt 
+0

嗨,默认情况下在OpenSSL.conf文件中有扩展名。不是吗? – Madhavan

+0

是的,您可以使用OpenSSL中的默认设置并取消注释/修改您需要的扩展名,然后将其路径作为文件名传递。但我建议你最好拥有自己的或者OpenSSL的副本。 –

+0

顺便说一句,如果它的工作只是接受答案,以便其他人会知道它的工作:) –