【问题标题】:Multiple Certficiation Authority certificates (?)多个证书颁发机构证书 (?)
【发布时间】:2018-06-19 09:49:58
【问题描述】:

我使用kopsaws 上创建了一个kubernetes 集群。

除非我错了,ca.crtca.key 文件位于以下位置,如 this 非常有用的答案所示:

   - s3://<BUCKET_NAME>/<CLUSTER_NAME>/pki/private/ca/*.key
   - s3://<BUCKET_NAME>/<CLUSTER_NAME>/pki/issued/ca/*.crt

但是,我不禁注意到,在我的 ~/.kube/config 文件(由 kops 自动创建)中,我有一个名为:

certificate-authority-data

其内容与上述两个文件不同

我们在颁发客户端证书时应该使用什么 CA 密钥/crt 对?

为什么有(似乎)不止一个 CA?

【问题讨论】:

    标签: kubernetes kops kubernetes-security


    【解决方案1】:

    好吧,这很奇怪......(也许像我这样没有经验的人......)

    当我表演时:

    echo -n <contents_of_the_certificate-authority-data_entry_of_my_kubeconfig_file> | base64 --decode
    

    ...我得到了我的ca.crt 文件...

    ca.crt 不是已经 base64 编码了吗?

    【讨论】:

    • CA 文件可能是 PEM 编码的。然后,您将对其进行 base64 编码。不知道为什么 k8s 决定对文件进行 base64 编码,可能是因为它的编码/解码很容易且具有确定性,并且 base64 编码的东西变成了单行的东西,所以没有人需要为获得多行 PEM 而苦苦挣扎- 将字符串编码为 YAML
    【解决方案2】:

    您的 Kubernetes 配置文件中的 certificate-authority-data 与您的以 base64 编码的证书没什么区别(配置文件有一个连续的文本字符串比没有base64 编码)。

    您的 .crt 文件采用 RSA 编码,而不是 base64。 RSA 是一种基于公钥和私钥(分别为您的 .crt 和 .key)的安全密码系统。 Base64 最多可用于格式化或传输已加密的数据。

    【讨论】:

    • .crt 文件未使用 RSA 编码。它包含用于 RSA 加密的(公共)密钥数据,.crt 文件的编码/格式可能是 PEM。
    猜你喜欢
    • 2012-04-18
    • 2016-01-01
    • 2011-09-24
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多