我正在尝试创建自己的根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套接字连接失败并出现“未知”错误而没有其他线索。我检查了客户端和服务器上都使用了正确的证书 。
我做错了什么?感谢。
答案 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