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. 第一次作业_ChenHong1998

    我的目标 学习到软件工程的实践过程 回想一下你初入大学时对软件工程专业的畅想 当初你是如何做出选择软件工程专业的决定的? 计算机是热门专业,软件工程专业好找工作 你认为过去两年中接触到的课程是否符合你 ...

  2. Node.js 串口通讯 node-serialport 使用说明

    官网:https://serialport.io/en/ 安装:npm install serialport Parsers说明:parser-byte-length:大概意思是定义了一个长度为len ...

  3. js递归算法1+ 2+3.....100的和

    function num(n){    if(n==1) return 1;    return num(n-1)+n;}num(100);

  4. shell脚本学习总结(不断更新中)

    前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情 ...

  5. Python 函数的描述

    函数 函数是带名字的代码块,用于完成具体的工作. 要执行函数定义的特定任务,可调用该函数.需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运 ...

  6. 使用bitsadmin.exe 下载文件,配合bcn.bat玩出更多的花样~~

    bitsadmin的简单介绍与基本用法: bitsadmin.exe 可以用来在windows 命令行下下载文件.bitsadmin是windows 后台智能传输服务的一个工具,windows 的自动 ...

  7. Java ASM 技术简介

    什么是ASM ASM 是一个 Java 字节码操控框架.它能被用来动态生成类或者增强既有类的功能.ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为. ...

  8. 关于JDBC和连接池我学到的(转载保存)

    1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模 ...

  9. Holer实现外网访问ARM嵌入式Linux系统

    公网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从公网也能访问内网ARM嵌入式Linux系统? 本文将介绍使用holer实现的具体步骤. 1. 准备工 ...

  10. LimeSDR 无线信号重放攻击和逆向分析

    原文链接:https://mp.weixin.qq.com/s/TBYKZR3n3ADo4oDkaDUeIA