簡體   English   中英

如何將JKS轉換為Docker Registry cert / key?

[英]How to convert JKS into Docker Registry cert/key?

我試圖在兩個虛擬機(用於HA)上設置安全的Docker注冊表 ,並且對設置SSL有疑問。 根據文檔中的鏈接,我需要有一個帶有兩個文件的certs目錄:

  • registry.crt -CA證書
  • registry.key -??? (私鑰?)

我得到了一個Java JKS(密鑰庫),其中包含一個通配符CA證書,可用於這些VM。 我能夠成功將證書從密鑰庫中導出,如下所示:

keytool -export -alias certalias -file registry.crt -keystore mycerts.jks

到目前為止一切順利:我有registry.crt 但是,一些相關的問題/擔憂阻止我完成此設置:

  • *.key文件是什么,它與cert有什么區別,如何從JKS中提取它?
  • Docker / Registry在每個VM上的哪個certs目錄中應該在哪里? 也許/home/myuser/ 這個位置可以配置嗎?!
  • 如該鏈接所述,如果您的CA證書是“ 中間 ”證書,則需要采取特殊的附加措施。 我怎么知道我的證書是中介的?

這里確實有三個問題。 您可能應該問其他問題。 我不知道第二個答案,但會為其他兩個答案。


簡單來說,在SSL上下文中,客戶端使用證書中包含的公鑰啟動安全連接。 只有擁有相應(專用)密鑰的服務器才能應答並因此建立連接。 (還有很多事情要做。)

關於密鑰庫的簡短描述是:幫個忙,並使用KeyStore Explorer之類的工具。 沒有從屬關系,我只是喜歡該工具。 用keytool導出私鑰並不是那么簡單。 據我所知,您不能直接導出私鑰。 但是,您可以從那里導出到PKCS12並使用其他工具,例如OpenSSL

keytool -importkeystore -srckeystore現有商店.jks -destkeystore新商店.p12 -deststoretype PKCS12

如果只有一個自簽名證書(簽名者與主題相同),則無需擔心中介。 中間證書意味着由簽署您的證書的CA簽署的證書本身又由另一個CA簽署。

CA 0 (signed by CA 0) - well known certificate, self-signed
 \_ CA 1 (signed by CA 0) - intermediate certificate
     \_ Your Cert (signed by CA 1)

為了驗證證書的完整性,客戶必須知道整個鏈。 通常,只有最頂層的CA才分布在瀏覽器和操作系統中(CA 0),因此您需要在中間“中介”(CA 1)中發布證書。

暫無
暫無

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

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