zoukankan      html  css  js  c++  java
  • 浏览器访问 kube-apiserver 安全端口

    1、浏览器访问 kube-apiserver 的安全端口 6443 时,提示证书不被信任

     这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信任

    对于 windows 系统使用以下命令导入 ca.pem

    1)在运行界面输入mmc,打开证书管理器

     

    2)选择文件---添加/删除管理单元---选择证书---点击添加---选择我的用户账户---点击完成

     3)选择受信任的根证书颁发机构----右键点击证书-----选择所有任务------选择导入

    下一步选择根证书文件

    下一步选择将所有的证书都放入下列存储

     下一步完成后可以在受信任的根证书颁发机构上找到导入的根证书

    再次访问 [apiserver 地址](https://192.168.1.201:6443/),已信任,但提示 401,未授权的访问

     

     2、我们需要给浏览器生成一个 client 证书,访问 apiserver 的 6443 https 端口时使用

    这里使用部署 kubectl 命令行工具时创建的 admin 证书、私钥和上面的 ca 证书,创建一个浏览器可以使用 PKCS#12/PFX 格式的证书

    openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem

    将创建的 admin.pfx 导入到系统的证书中,对应window10系统

    1)在运行界面输入mmc,打开证书管理器

     

    2)选择文件---添加/删除管理单元---选择证书---点击添加---选择我的用户账户---点击完成

     3)选择个人----右键点击证书-----选择所有任务------选择导入---选择admin.pfx证书---下一步

     选择创建admin.pfx是设置的密码(如果创建时没有设置,直接下一步)----下一步---完成

    完成后可在个人---证书看到刚导入的证书

     重启浏览器**,再次访问 [apiserver 地址](https://192.168.1.201:6443/),提示选择一个浏览器证书,这里选中上面导入的 admin.pfx

     

    这一次,被授权访问 kube-apiserver 的安全端口

    ## 客户端选择证书的原理

    1. 证书选择是在客户端和服务端 SSL/TLS 握手协商阶段商定的;
    1. 服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接受的 CA 列表;
    1. 客户端查找它的证书列表(一般是操作系统的证书,对于 Mac 为 keychain),看有没有被 CA 签名的证书,如果有,则将它们提供给用户选择(证书的私钥);
    1. 用户选择一个证书私钥,然后客户端将使用它和服务端通信;

  • 相关阅读:
    JSON.parse()和JSON.stringify()
    对于火狐浏览器中title不能换行自动变成...怎么解决的?
    Python中文编码过程中遇到的一些问题
    【Java并发编程实战】—–“J.U.C”:ReentrantLock之二lock方法分析
    PHP CURL 中文说明
    Windows系统下正确安装MongoDB
    js笔试题
    记录真实想法,在路上不断前行——关于工作,学习,职场
    Ansible@一个高效的配置管理工具--Ansible configure management--翻译(十一)
    Java第四次作业
  • 原文地址:https://www.cnblogs.com/deny/p/12264757.html
Copyright © 2011-2022 走看看