这两种OpenSSL生成方法的区别

时间:2011-10-18 11:38:55

标签: qt sockets ssl openssl x509

我正在尝试创建自己的根CA.

这是生成自签名根密钥/证书的一种方法。

openssl req -x509 -nodes -newkey rsa:2048 -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout $1.key.pem -out $1.cert.pem

这是另一个。

openssl genrsa -des3 -out $1.key.pem 2048
openssl req -new -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -key $1.key.pem -out $1.csr
openssl x509 -req -days 36500 -in $1.csr -signkey $1.key.pem -out $1.crt.pem

如果我使用第一个证书创建客户端和服务器连接(使用QSslSocket),则连接正常。麻烦是证书上的日期是1975年,我不能用它来签署任何其他人。

我构造了第二种方法来生成带有vaid日期的根证书,但是ssl套接字连接失败并出现“未知”错误而没有其他线索。我检查了客户端和服务器上都使用了正确的证书

我做错了什么?感谢。

1 个答案:

答案 0 :(得分:2)

如果你使用-days 36500,那么时间将结束到1975年:

    Validity
        Not Before: Oct 18 11:57:31 2011 GMT
        Not After : Aug 18 05:29:15 1975 GMT

使用较小的-days值。例如:

openssl req -x509 -days 3000 -nodes -newkey rsa:2048 -subj /CN=xx/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout xx.key.pem -text -out xx.cert.pem

然后你应该得到有效的一天:

    Validity
        Not Before: Oct 18 12:01:17 2011 GMT
        Not After : Jan  4 12:01:17 2020 GMT