K8s--集群的设置-配置TLS

本文深入探讨了K8s集群中TLS的配置,包括单向和双向TLS(mTLS)以及k8s的通信方式。介绍了如何不使用ingress-controller自带证书,而是通过cfssl工具创建自签名证书。此外,还详细阐述了如何通过cert-manager从互联网CA(如lets encrypt)申请证书,并简化申请流程。最后,讨论了Kubeconfig的证书验证和token登录选项。
摘要由CSDN通过智能技术生成

TLS 传输层加密 前身是SSl tls/ssl

只有A去验证B的证书的合法性 单向TLS
双向验证证书合法性 双向TLS 就是mTLS

https=http+tls/ssl

对称加密

加密和解密使用同一个密钥–密码
优点:加密大数据比较快
缺点:密钥不方便传输
常见:AES, DES 加密长度越长越安全

非对称加密

公钥、私钥
数据加密模式:公钥加密,私钥解密
数字签名模式:私钥加密,公钥解密

哈希函数

md5 sha1 sha512

k8s使用的就是mTLS进行通信

访问某个pod的时候,到底要不要TLS认证,这个就要看此pos里程序的配置了
etcd         /etc/kubernetes/manifests/etcd.yaml

kube-api    /etc/kubernetes/manifests/kube-apiserver.yaml
这些文件里面都有要求  都有指定证书

https的优点

1、整个通信都是被加密的—有效防止流量劫持
2、可以有效的提升搜索引擎的权重

[root@vms60 ~]# curl -vkL  https://www1.ck8s.com
* About to connect() to www1.ck8s.com port 443 (#0)
*   Trying 192.168.26.82...
* Connected to www1.ck8s.com (192.168.26.82) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=Kubernetes Ingress Controller Fake Certificate,O=Acme Co
* 	start date: 506 06:20:13 2022 GMT
* 	expire date: 506 06:20:13 2023 GMT
* 	common name: Kubernetes Ingress Controller Fake Certificate                # 标识了ca证书的来源

**使用的是ingress-controller里面的证书**

需求1 不使用ingress-controller自带证书,使用自己做的证书

cfssl工具

https://www.****.com/#s/8F8OHyjg

chmod +x  *
mv cfssl-certinfo_linux-amd64   /usr/local/bin/cfssl-certinfo
mv cfssljson_linux-amd64   /usr/local/bin/cfssljson
mv  cfssl_linux-amd64  /usr/local/bin/cfssl

一、ca的配置
二、申请CA证书
三、创建自签名的CA证书

cfssl print-defaults config > ca-config.json
root@vms81:~/soft/lab-CFSSL# cat ca-config.json
{
   
    "signing": {
   
        "default": {
   
            "expiry": "1680h"
        },
        "profiles": {
   
            "www": {
   
                "expiry": "8760h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth"
                ]
            }
        }
    }
}


cfssl print-defaults csr  > ca-csr.json
root@vms81:~/soft/lab-CFSSL# vim ca-csr.json
{
   
    "CN": "ck8s.com",
    "key": {
   
        "algo": "ecdsa",
        "size": 256
    },
    "names": [
        {
   
            "C": "CN",
            "L": "Xuzhou",
            "ST": "Jiangsu",
            "O": "Lduan",
            "OU": "cks"
        }
    ]
}


cfssl  gencert -initca ca-csr.json | cfssljson -bare test-ca   # 生成一个自签名的CA,名字是CA证书的前缀
root@vms81:~/soft/lab-CFSSL# ls
ca-config.json  ca-csr.json  test-ca.csr  test-ca-key.pem  test-ca.pem

在这里插入图片描述

四、客户端配置

cfssl print-defaults csr > client-csr.json 
**admin-csr.json 里面的信息必须要与ca保持一致**
root@vms81:~/soft/lab-CFSSL# cat client-csr.json
{
   
    "CN": "ck8s.com",
    "key": {
   
        "algo": "ecdsa",
        "size": 256
    },
    "hosts": [
        "www1.ck8s.com"
    ],
    "names": [
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值