2017-06-10 115 views
1

我的問題是如何在Windows中使用OpenSSL創建公鑰和私鑰,以及如何將創建的公鑰和.crt文件中的私鑰放在.pcks8文件中,以便使用這兩個鍵簽署SAML斷言在Java中如何使用openssl創建公鑰和私鑰?

在此先感謝

+1

你的問題有點不清楚。證書(通常存儲在'.crt'文件中)包含公鑰,但公鑰本身不是證書 –

+0

@ MathiasR.Jessen我試圖在opensaml-j中創建證書,後者需要公鑰和私鑰才能在簽名中使用此憑證 – Karim

+1

看起來您有三個問題。第一個問題:[如何使用OpenSSL生成RSA私鑰?](https://stackoverflow.com/q/5927164/608639)第二個問題是[以編程方式使用OpenSSL創建X509證書](https:// stackoverflow。 COM/q /六十零萬八千六百三十九分之二十五萬六千四百零五)。第三個問題,除PKCS#8外,只使用['i2d_RSAPrivateKey_bio'](https://www.openssl.org/docs/manmaster/man3/i2d_RSAPrivateKey_bio.html)。在[如何使用OpenSSL生成RSA私鑰?](https://stackoverflow.com/a/30493975/608639) – jww

回答

4

可以生成與genrsa背景下,公私密鑰對(最後一個數字是位keylength):

openssl genrsa -out keypair.pem 2048 

要提取的公共部分,使用rsa背景:

openssl rsa -in keypair.pem -pubout -out publickey.crt 

最後,原來的密鑰對轉換爲PKCS#8格式與pkcs8背景:

openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in keypair.pem -out pkcs8.key 
+0

任何關心解釋downvote? –

+0

他在堆棧溢出,所以他需要代碼。如果他問超級用戶或U&L.SE,那麼這些命令將適用。 – jww