Bota5ky

Kubernetes学习笔记(二十三):TLS

查看Common Name (CN):openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text

Symmetric Encryption:对称加密,使用相同的密钥来加密和解密数据,必须在发送方和接收方之间交换,因此存在风险

Asymmetric Encryption:非对称加密,Private Key和Public Lock

ssh-keygen 生成私钥 id_rsa 和公钥 id_rsa.pub

添加公钥:通常是在服务器SSH授权的下划线密钥文件中添加一个包含公钥的条目来完成的 cat ~/.ssh/authorized_keys

ssh-rsa AAAAB3Nza... user1
ssh-rsa AAAXCV2b8... user2

指定私钥 ssh -i id_rsa user1@server1

使用openssl生成私钥、公钥:

openssl genrsa -out my-bank.key 1024  ## private key
## my-bank.key
openssl rsa -in my-bank.key -pubout > mybank.pem  ## public key
## my-bank.key mybank.pem

证书包含:

  • 有关谁向该服务器的公钥颁发证书的信息
  • 该服务器地址
  • ...

生成证书的时候必须带有签名,自签名的证书会被认为非法

Certificate Authority (CA) 负责签署和验证证书,比较著名的有 Symantec、Desert、Comodo、Global Sign 等等

签名的方式:

  • 用之前生成的密钥和网站域名生成Certificate Signing Request (CSR)

    openssl req -new -key my-bank.key -out my-bank.csr -subj "/C=US/ST=CA/O=MyOrg, Inc./CN=mydomain.com"  ## 对于hacker Validate Information会失败
    ## my-bank.key my-bank.csr
    
  • 验证通过,Sign and Send Certificate

CA合法性的验证:签名用私钥,所有CA的公钥都存在浏览器中

私有CA:一样的运作方式,为组织内所有浏览器安装私有CA的公钥

Kubernetes要求集群至少有一个证书颁发机构CA,也可以设置多个

之前尝试使用命令行登陆证书过期的https失败

openssl x509 -inform der -in \*.thoughtworks.cn.cer -out certificate.pem

但是缺少私钥,一般会生成公钥和私钥,或者合并为同一份pem文件。

curl --cert certificate.pem --header 'Content-Type: application/json' -d '{"captcha": "111", "captchaId": "captchaId", "password": "password", "username": "user"}' --request POST https://sample.com

更改hosts方法

sudo vim /etc/hosts

如果api-server不可用,用命令查看频繁退出的container的id crictl ps -a | grep kube-apiserver,并查看日志 crictl logs --tail=2 1fb242055cff8找出原因 - Container Runtime Interface (CRI)

posted @ 2022-08-26 22:37  Bota5ky  阅读(32)  评论(0)    收藏  举报