kubadm运行逻辑——init-certs证书的生成与创建

前言

认证体系知识繁杂,因此需要较多的基础理论才能明白认证的一个基本逻辑。

1、非对称加密体系:这块是加密解密、认证的基本原理以及知识点。有了这些基本数学基础,才能明白具体为什么非对称加密可以做认证。相关知识点如下所示:

http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

https://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

2、另外就是需要了解加密认证的基本协议规范。即使有了上面的加密解密理论知识,但是应用到实践当中,还是要有规范以及相关的约定。比如说公钥如何给到相关的机构,相关机构如何二次签发,签发的认证证书如何验证真实性等等。这块涉及到互联网的相关的知识点,用的比较多的是X.509协议,如下:

https://blog.csdn.net/blue0bird/article/details/78656536

3、有了这些协议密码之后,需要一些现成的工具来完成这些信息的生成以及证书的只做。openssl就是一个很好的工具。使用它来完成具体的证书生成操作。

4、生成后具体证书在https中的应用逻辑。其实非对称加密算法只能加解密数字,因此无法直接对较大的文本进行加密传输。所以https就是使用证书进行秘钥的传递,传递之后再用相关秘钥进行数据传输,进而保证传输信息保密。

https://www.runoob.com/w3cnote/https-ssl-intro.html

一、kubernetes需要的证书列表

kubeadm用于生成各个证书的重要代码段,他把各个证书的的生成封装成一个个的对象。然后放到我们subPhases中,上层的逻辑会挨个调用对象中的run函数。

 74 func newCertSubPhases() []workflow.Phase {
 75     subPhases := []workflow.Phase{}
 76
 77     // All subphase
 78     allPhase := workflow.Phase{
 79         Name:           "all",
 80         Short:          "Generate all certificates",
 81         InheritFlags:   getCertPhaseFlags("all"),
 82         RunAllSiblings: true,
 83     }
 84
 85     subPhases = append(subPhases, allPhase)
 86
 87     // This loop assumes that GetDefaultCertList() always returns a list of
 88     // certificate that is preceded by the CAs that sign them.
 89     var lastCACert *certsphase.KubeadmCert
 90     for _, cert := range certsphase.GetDefaultCertList() {
 91         var phase workflow.Phase
 92         if cert.CAName == "" {
 93             phase = newCertSubPhase(cert, runCAPhase(cert))
 94             lastCACert = cert
 95         } else {
 96             phase = newCertSubPhase(cert, runCertPhase(cert, lastCACert))
 97             phase.LocalFlags = localFlags()
 98         }
 99         subPhases = append(subPhases, phase)
100     }
101
102     // SA creates the private/public key pair, which doesn't use x509 at all
103     saPhase := workflow.Phase{
104         Name:         "sa",
105         Short:        "Generate a private key for signing service account tokens along with its public key",
106         Long:         saKeyLongDesc,
107         Run:          runCertsSa,
108         InheritFlags: []string{options.CertificatesDir},
109     }
110
111     subPhases = append(subPhases, saPhase)
112
113     return subPhases
114 }

 具体生成的相关证书逻辑。加上上面的SA。共同组成了kubernetes的所有证书。

208 func GetDefaultCertList() Certificates {
209     return Certificates{
210        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值