[英]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中提取它? certs
目錄中應該在哪里? 也許/home/myuser/
? 這個位置可以配置嗎?! 這里確實有三個問題。 您可能應該問其他問題。 我不知道第二個答案,但會為其他兩個答案。
簡單來說,在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.