1、设置kube-apiserver的CA证书相关的文件和启动参数
 
1)创建CA证书和私钥相关的文件
openssl genrsa -out ca.key
openssl req -x509 -new -nodes -key ca.key -subj "/CN=lile.com" -days -out ca.crt
openssl genrsa -out server.key
2)master_ssl.cnf文件
[req]
req_extensions=v3_req
distinguished_name=req_distinguished_name
[req_distinguished_name]
[v3_req]
basicConstraints=CA:FALSE
keyUsage=nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=@alt_names
[alt_names]
DNS.=kubernetes
DNS.=kubernetes:default
DNS.=kubernetes:default.svc
DNS.=kubernetes:default.svc.cluster.local
DNS.=ip----
IP.=169.169.0.1
IP.=172.29.1.113
DNS.5:主机名
IP.1:集群IP,--service-cluster-ip-range=169.169.0.0/16,这里设置的取第一个
IP.2:主机IP
 
openssl req -new -key server.key -subj "/CN=ip-172-29-1-113" -config master_ssl.cnf -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days -extensions v3_req -extfile master_ssl.cnf -out server.crt
3)在apiserver的配置文件中加上以下参数,并把8080端口参数去掉
KUBE_CA="--client-ca-file=/var/run/kubernetes/ca.crt"
KUBE_PRIVATE_KEY="--tls-private-key-file=/var/run/kubernetes/server.key"
KUBE_CERT_FILE="--tls-cert-file=/var/run/kubernetes/server.crt"
KUBE_INSECURE="--insecure-port=0"
KUBE_SECURE_PORT="--secure-port=443"
--client-ca-file:代表CA根证书文件
--tls-cert-file:服务端私钥文件
--tls-private-key-file:服务端证书文件
 
2、设置kube-controller-manager的客户端证书、私钥和启动参数
1)
openssl genrsa -out cs_client.key
openssl req -new -key cs_client.key -subj "/CN=k8s-node" -out cs_client.csr
openssl x509 -req -in cs_client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days -out cs_client.crt
 
2)创建kubeconfig文件
 
vim /etc/kubernetes/kubeconfig
apiVersion: v1
kind: Config
users:
- name: controllermanager
user:
client-certificate: /var/run/kubernetes/cs_client.crt
client-key: /var/run/kubernetes/cs_client.key
clusters:
- name: local
cluster:
certificate-authority: /var/run/kubernetes/ca.crt
contexts:
- context:
cluster: local
user: controllermanager
name: my-context
current-context: my-context
 
3)修改启动参数
KUBE_PRIVATE_KEY="--service-account-private-key-file=/var/run/kubernetes/server.key"
KUBE_CA_FILE="--root-ca-file=/var/run/kubernetes/ca/crt"
KUBE_CONFIG="--kubeconfig=/etc/kubernetes/kubeconfig"
3、设置kube-schedule启动参数

 
KUBE_MASTER="--master=http://172.29.1.113:443"
KUBE_CONFIG="--kubeconfig=/etc/kubernetes/kubeconfig"
 
4、设置Node节点上的Kubelet客户端
 
1)拷贝master上的ca.crt和ca.key到node节点上

openssl genrsa -out kubelet_client.key
openssl req -new -key kubelet_client.key -subj "/CN=k8s-node" -out kubelet_client.csr
openssl x509 -req -in kubelet_client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days -out kubelet_client.crt
2)创建kubeconfig文件
 
vim /etc/kubernetes/kubeconfig
apiVersion: v1
kind: Config
users:
- name: kubelet
user:
client-certificate: /var/run/kubernetes/kubelet_client.crt
client-key: /var/run/kubernetes/kubelet_client.key
clusters:
- name: local
cluster:
server: https://172.29.1.113:443
certificate-authority: /var/run/kubernetes/ca.crt
contexts:
- context:
cluster: local
user: kubelet
name: my-context
current-context: my-context
3)修改kubelet的启动参数(api_servers的地址 也要改)

 
KUBE_CONFIG="--kubeconfig=/etc/kubernetes/kubeconfig"
5、修改kube-proxy的启动参数

 
KUBE_MASTER="--master=http://172.29.1.113:443"
KUBE_CONFIG="--kubeconfig=/etc/kubernetes/kubeconfig"
6、测试访问

kubectl --server=https://172.29.1.113:443 --certificate-authority=/var/run/kubernetes/ca.crt --client-certificate=/var/run/kubernetes/cs_client.crt  --client-key=/var/run/kubernetes/cs_client.key get nodes

 
 
 
 
 

k8s基于CA签名的双向数字证书认证(三)的更多相关文章

  1. 数字证书认证这点事, SSL/TLS,OpenSSL

    1.概念 数字证书 HTTPS请求时,Server发给浏览器的认证数据,用私钥签名,并且告诉浏览器公钥,利用公钥解密签名,确认Server身份. 证书还会指明相应的CA,CA能确认证书是否真的是CA颁 ...

  2. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书

    最后更新于2017年01月24日 一.为什么 为什么写这篇文章?ca是什么?数字证书是什么?ejbca又是什么? 让我们从http与https说起.http是超文本传输协议(HyperText Tra ...

  3. https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL_转

    转自:https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL 因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首 ...

  4. 理解 HTTPS 工作原理(公钥、私钥、签名、数字证书、加密、认证)(转)

    本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...

  5. 基于OpenSSL的PKI的PKI数字证书系统实现

    本篇主要介绍了基于OpenSSL的PKI的PKI数字证书系统实现,利用OpenSSL建立一个CA中心的详细解决方案和建立的具体步骤. 1.PKI数字证书系统设计 PKI数字证书系统主要包括证书颁发机构 ...

  6. 转: https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL

    转自: http://www.cnblogs.com/mailingfeng/archive/2012/07/18/2597392.html 因为项目中要用到TLS + SASL 来做安全认证层. 所 ...

  7. java-信息安全(四)-数据签名、数字证书

    概述 信息安全基本概念: 数字签名 数字证书 数字签名 数字签名(又称公钥数字签名.电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.一套数字签名 ...

  8. CA与数字证书的自结

    1.CA CA(Certificate Authority)是数字证书认证中心的简称,是指发放数字证书.管理数字证书.废除数字证书的权威机构. 2.数字证书 如果向CA申请数字证书的单位为A.则他申请 ...

  9. 安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS【下】

    1.  HTTPS 1.1. 什么是HTTPS HTTPS(HypertextTransfer Protocol Secure)即安全的HTTP.HTTPS的安全基础是安全套接层(Secure Soc ...

随机推荐

  1. Markdown中特殊字符的转义字符

    上次在用Markdown记笔记时,当正文中写到<PROJECT>_<PATH>_<FILE>_H_时,<>里的内容显示显示不出来,就算用' '也显示不出 ...

  2. C/C++(static)

    出自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777441.html 静态全局变量作用范围在一个文件内,程序开始时分配空间,结束 ...

  3. Beta冲刺 2

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10104842.html 作业博客:https://edu.cnblogs.com/campus ...

  4. Qt终结者之粒子系统

    前言 粒子系统用于模拟一些特定的模糊效果,如爆炸.烟火.雪花.水流等.使用传统的渲染技术实现粒子效果比较困难,但是使用QML粒子系统能十分方便的实现各种粒子效果,使你的界面更加炫酷,动感. QML中的 ...

  5. https加密流程

     引用其它博主博客,在这里谢谢这位博主,原博客地址:https://blog.csdn.net/xincai/article/details/51954468 1,下面,用一幅图展示一下https建立 ...

  6. Java Web安全之程序逻辑缺陷

    Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患.企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞, ...

  7. MAC Homebrew安装和简单使用

    前言: 这个周六日在刚刚买的macbookpro(系统版本是:10.13.5)上面安装angular,一开始是按照windows上的顺序安装的,先安装node.js,然后在安装angular的时候报错 ...

  8. Ubuntu16.04下ZeroC ICE的安装与使用示例(Qt C++ 和 Java)

    项目需求:在Ubuntu16.04系统下安装并使用ICEgrid 3.7进行c++和Java Springboot开发环境的通信,下面逐一介绍各个步骤的详解: 一:Ice Lib的安装 参考官网地址: ...

  9. Knut重排算法

    /// <summary> /// 这是Knut重排算法的实现 /// </summary> /// <param name="number"> ...

  10. [LeetCode&Python] Problem 704. Binary Search

    Given a sorted (in ascending order) integer array nums of n elements and a target value, write a fun ...