gpt4 book ai didi

java - 如何将 JKS 转换为 Docker 注册表证书/ key ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:23 26 4
gpt4 key购买 nike

我正在尝试 set up a secure Docker Registry在两个虚拟机上(用于 HA)并且对设置 SSL 有疑问。根据文档中的链接,我需要一个包含两个文件的 certs 目录:

  • registry.crt - CA 证书
  • registry.key - ??? (私钥?)

我获得了一个 Java JKS( keystore ),其中包含一个适用于这些 VM 的通配符 CA 证书。我能够像这样从 keystore 中成功导出证书:

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

到目前为止一切顺利:我有 registry.crt。然而,一些相关的问题/疑虑阻止我完成此设置:

  • 什么是 *.key 文件,它与证书有何不同,如何从 JKS 中提取它?
  • Docker/Registry 期望每个 VM 上的这个 certs 目录在哪里?也许 /home/myuser/?这个位置是可配置的吗?!?
  • 如链接所述,如果您的 CA 证书是“中介”证书,则需要执行特殊的附加操作。如何判断我的证书是否为中介证书?

最佳答案

这里真的有三个问题。你可能应该问不同的问题。我不知道你的第二个问题的答案,但会回答另外两个问题。


简单来说,在 SSL 上下文中,客户端使用证书中包含的公钥启动安全连接。只有拥有相应(私钥) key 的服务器才能应答并因此建立连接。 (还有很多事情要做。)

关于 keystore 的简短说明是:帮自己一个忙,使用像 KeyStore Explorer 这样的工具。 .没有隶属关系,我只是喜欢这个工具。使用 keytool 导出私钥并不是那么简单。据我所知,您不能直接导出私钥。 You can however export to PKCS12 and use other tools like OpenSSL from there :

keytool -importkeystore -srckeystore existing-store.jks -destkeystore new-store.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)。

关于java - 如何将 JKS 转换为 Docker 注册表证书/ key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com