簡體   English   中英

將 PEM 文件轉換為 .JKS Key Store 和 Trust Store 文件

[英]Converting a PEM file to a .JKS Key Store and Trust Store files

服務器端的PEM文件,打開后格式如下:

-----BEGIN CERTIFICATE-----
somestuff1234
-----END CERTIFICATE-----

我正在嘗試將其轉換為獲取兩個 JKS 文件(一個信任庫和密鑰庫),我可以使用我的 java 應用程序通過 SSL 調用服務器。

任何人都可以幫助輕松分解如何使用 openssl 然后使用 java 密鑰庫來執行此操作嗎? 我嘗試按照以下說明進行操作: https://docs.oracle.com/cd/E35976_01/server.740/es_admin/src/tadm_ssl_convert_pem_to_jks.html

但由於某種原因,我無法成功導入密鑰庫,因為它是空的。 PS 在按照這些說明進行操作時,我從 der 創建了 PKSC12,但沒有輸入私鑰,因為沒有提供私鑰。

我是否需要使用我自己也需要創建的私鑰,但不確定是否需要它,因為我只獲得了證書? 我被告知中間證書是在 TLS 握手中發送的。

感謝您對此的任何幫助。

嘗試使用調試模式和有關 SSL 服務器的特定信任庫運行 java 代碼,如下所述: How to configure trustStore for javax.net.ssl.trustStore on windows?

如果該 PEM 文件中唯一的內容就是您發布的內容:

-----BEGIN CERTIFICATE-----
somestuff1234
-----END CERTIFICATE-----

您將無法創建適合用作接受連接的 TLS 服務器的完整密鑰庫。

為此,您需要與證書相對應的私鑰。

我是否需要使用我自己也需要創建的私鑰,但不確定是否需要它,因為我只獲得了證書?

否 - 連同其識別數據,您的證書中有一個公鑰。 整個證書由您的 CA 以加密方式簽名 - 這就是“信任”轉移到您的證書的方式。 您證書中的公鑰源自特定的私鑰。

為什么它不起作用? 因為使用證書中的公鑰加密的數據只能使用派生公鑰的私鑰解密。

您的證書只有在與正確的私鑰配對時才有效。

但:

我從 der 創建了 PKSC12,但沒有輸入私鑰,因為沒有提供私鑰。

您必須擁有私鑰和證書才能運行 TLS 服務器。*

編輯:

出於同樣的原因,您必須將正確的私鑰與您的證書配對,才能在連接到 TLS 服務器時將其用作客戶端證書。

此外,TLS 證書是公開的——如果您只需要它來證明您的身份,那么將其公之於眾會使它毫無用處。 您擁有適當的私鑰就可以證明該證書是您的證書,而不是我的或其他任何人的。

在您為您擁有的證書找到正確的私鑰之前,您的 TLS 服務器或與 TLS 服務器的客戶端連接將無法工作。 如果您或您的組織丟失了該私鑰,則必須通過從該新私鑰創建證書的過程創建一個新的私鑰和 go。

因為沒有正確的私鑰,你現在擁有的證書就毫無用處。

* - 技術上不正確。 TLS 標准確實支持不需要任何證書或私鑰的“匿名”密碼套件 但幾乎沒有應用程序支持匿名密碼套件。 例如,OpenSSL 如果您自己從源代碼編譯它,則僅支持匿名密碼套件。

暫無
暫無

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

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