2011-10-18 7 views
2

我正在嘗試創建自己的根CA.這兩個OpenSSL生成方法的區別

以下是生成自簽名根密鑰/證書的一種方法。

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),那麼在建立連接OK。麻煩的是證書上的日期是1975年,我不能用它來簽署任何其他日期。

我構建了第二種方法來生成帶有日期日期的根證書,但ssl套接字連接失敗,出現「未知」錯誤並且沒有其他線索。我檢查了正確的證書是在客戶端和服務器上使用的

我在做什麼錯?謝謝。

回答

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 
+0

啊,http://www.wolframalpha.com/input/?i=days+between+now+and+2038?我現在不能測試它,但它看起來像這樣:-) – spraff