簡體   English   中英

如何將信任證書從.jks轉換為.pem?

[英]How to convert trust certificate from .jks to .pem?

我有一個Java SSL服務器,我希望我的Java SSL客戶端和C ++ SSL客戶端能夠連接。 Java客戶端連接沒有問題。 現在我希望我的C ++ SSL客戶端能夠連接。 所以為了這個目的,我想,我想將serverpub.jks導出到.pem文件,以便我的C ++客戶端可以將它加載到它的ssl上下文中。 但這不起作用。

下面是我如何為Java客戶端和服務器創建jks密鑰庫的描述,以及我如何嘗試將serverpub.jks導出到.pem文件。

步驟1:生成客戶端和服務器密鑰庫

c:\keytool -genkeypair -alias myserverkeys -keyalg RSA -dname "CN=my Server,OU=kl2217,O=kl2217org,L=NYC,ST=NY,C=US" -keypass password -keystore server.jks -storepass password
c:\keytool -genkeypair -alias myclientkeys -keyalg RSA -dname "CN=my Client,OU=kl2217,O=kl2217org,L=NYC,ST=NY,C=US" -keypass password -keystore myclient.jks -storepass password

步驟2:導出服務器公共證書並創建單獨的密鑰庫

c:\keytool -exportcert -alias myserverkeys -file serverpub.cer -keystore myserver.jks -storepass spacex
c:\keytool -importcert -keystore serverpub.jks -alias serverpub -file serverpub.cer -storepass password

步驟3:導出客戶端公共證書並創建單獨的密鑰庫

c:\keytool -exportcert -alias myclientkeys -file clientpub.cer -keystore myclient.jks -storepass spacey
c:\keytool -importcert -keystore clientpub.jks -alias clientpub -file clientpub.cer -storepass password

到現在為止還挺好。

現在我遇到了問題。

第4步:將serverpub.jks轉換為.pem格式

c:\keytool -importkeystore -srckeystore serverpub.jks -destkeystore serverpub.p12 -srcstoretype jks -deststoretype pkcs12

答復

Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
Problem importing entry for alias serverpub: java.security.KeyStoreException: TrustedCertEntry not supported.
Entry for alias serverpub not imported.
Do you want to quit the import process? [no]:

這是什么意思? 我究竟做錯了什么?

第5步:本來可以的

c:\openssl pkcs12 -in serverpub.p12 -out serverpub.pem

但正如你所看到的那樣,我無法走得那么遠。

我真的很感激一些幫助,了解如何做到這一點。

謝謝

不幸的是,keytool顯然不允許您從信任存儲區導出,因為他們認為PEM文件不支持可信證書的概念。 所以我會使用cer文件的密鑰庫。

  • 來自一個cer:

     openssl x509 -inform der -in serverpub.cer -out serverpub.pem 
  • 從密鑰庫:

     keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -deststoretype PKCS12 openssl pkcs12 -in server.p12 -nokeys -out server.cer.pem openssl pkcs12 -in server.p12 -nodes -nocerts -out server.key.pem 

或者只是試試

keytool -exportcert -alias myserverkeys -keystore serverpub.jks -rfc -file serverpub.pem

以下簡單的單行命令將證書導出為PEM格式。 是的,你需要openssl,單靠keytool無法做到這一點。

keytool -exportcert -alias <CERT-ALIAS> -keystore <KEYSTORE-FILE> | openssl x509 -inform DER >cert.pem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM