2014-01-10 28 views
1

最初我們使用OpenSSL 0.9.8e來導入證書。此版本的OpenSSL用於使用標題「----- BEGIN RSA PRIVATE KEY -----」創建私鑰Bio。現在我們已經將OpenSSL升級到了1.0.1。在這個版本的OpenSSL中,當我們導入證書時,使用標題「----- BEGIN PRIVATE KEY -----」創建私鑰生物。由Openssl生成的證書包含「PRIVATE KEY」而不是「RSA PRIVATE KEY」

此差異導致將證書導出到其他設備時出現問題。

有人可以幫我調試這個問題嗎?

由於提前, Azeem

+0

可能重複的[如何將私鑰轉換爲RSA私鑰?](http://stackoverflow.com/questions/17733536/how-do-i-convert-a-private-key- rsa-private-key) – vzamanillo

+0

上面提到的線程包含解決方案,但它是獲取舊式密鑰的OpenSSL命令。我希望OpenSSL中的代碼導致了這個特殊問題。 –

+0

導出證書聽起來沒問題,但爲什麼你想分發一個私人密鑰爲天堂的緣故? –

回答

0

PEM_write_bio_PrivateKeyPEM_write_bio_RSAPrivateKey。我不確定它何時發生,但可能是由於此變化(來自https://www.openssl.org/docs/crypto/pem.html):

保留舊的PrivateKey寫入例程的兼容性。新 應用程序應該使用 PEM_write_bio_PKCS8PrivateKey()或PEM_write_PKCS8PrivateKey() 程序編寫的私有密鑰,因爲它們更安全(而傳統的套路使用計數1,他們使用的 2048一迭代次數),除非 與舊版本的兼容性OpenSSL非常重要。

PrivateKey讀取例程可用於所有應用程序,因爲它們可透明地處理所有格式。

+0

那麼這意味着我將無法使用較新的OpenSSL代碼獲得舊版證書格式。 是否有可能以某種方式禁用導致密鑰格式更改並生成密鑰格式的OpenSSL代碼,如同在舊版OpenSSL中完成的那樣? –