V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
borivosky
V2EX  ›  Kubernetes

如何使用商业证书代替 k8s 组件之间通信的 TLS 证书

  •  
  •   borivosky · 267 天前 · 3667 次点击
    这是一个创建于 267 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们,最近遇到这么个问题。公司的安全部门使用 Nessus Tenable SC 扫描了公司的服务器,扫出来 k8s 的那几台服务器的自签名证书是不安全的,违反了公司的安全策略(自建的 k8s 服务)。目前网上看到的都是官网的那一套 https://kubernetes.io/docs/concepts/cluster-administration/certificates/ 有没有大佬有用商业证书替换自签名证书的经验分享一下?

    第 1 条附言  ·  267 天前
    主要矛盾是按照官网的 cfssl 工具生成的使用自签名证书会被 Nessus Tenable SC 扫描出说不安全,当时我想到的是能否用商业证书替换自签名证书,所有大佬们有其他的思路也可以提供一下。
    24 条回复    2020-12-31 03:28:04 +08:00
    no1xsyzy
        1
    no1xsyzy   267 天前
    商业证书怎么签给 kubernetes.default.svc.cluster.local 这个域名呢?怎么签给 private IP 呢?
    AkideLiu
        2
    AkideLiu   267 天前 via iPhone
    商业域名需要 dns 支持,域名真实存在,你这个上不了公网
    kimqcn
        3
    kimqcn   267 天前
    内网没必要非得用商用设备证书,又不是给客户看,而且,贵!
    非得用,可以使用 cn=ip 的设备证书替换。
    国外的 CA (不考虑),国内的 CA,都有。
    听说国内在搞统一的国家根设备证书。
    borivosky
        4
    borivosky   267 天前
    @no1xsyzy 因为对这块不熟,也不知道有没有实现的可能性,所以想来问问。
    borivosky
        5
    borivosky   267 天前
    @kimqcn 大佬有没有相关的文章可以参考一下。目前只是想解决自签名证书不被信任的问题,想到的就是把自签名证书换成商业证书。大佬如果有其他的方案可以提示一下吗?
    borivosky
        6
    borivosky   267 天前
    @AkideLiu 所以可以确定没有可行性吗?
    sheeta
        7
    sheeta   267 天前 via Android
    根本就不可能替换成商业证书
    @borivosky
    xyjincan
        8
    xyjincan   267 天前 via Android
    安全部门给自建 ca 吗,像以前 12306 一样
    dangge
        9
    dangge   267 天前
    买一个域名,然后给这个域名签发证书,内网把 DNS 解析全部做成内网 IP 不就好了。。。
    然后你可以去找老板发出灵魂拷问:
    现在购买的互信证书最长有效期 13 个月,每年要停机换一次证书。
    borivosky
        10
    borivosky   267 天前
    @xyjincan 这个我不确定安全部门给不给(或者能不能)自建 ca,得等下次开会的时候确认一下。多谢提供思路。
    Hurriance
        11
    Hurriance   267 天前
    本地开发环境我是用 mkcert 生成的,不算是自签名的,供楼主参考一下
    borivosky
        12
    borivosky   267 天前
    @Hurriance 好的,多谢提供思路。其实主要矛盾是使用自签名证书会被 Nessus Tenable SC 扫描出说不安全,当时我想到的就只是用商业证书替换自签名证书。不过可以试一下 mkcert 是不是也会有同样的问题
    borivosky
        13
    borivosky   267 天前
    @dangge 哈哈哈 这个思路可以,先去发出灵魂的拷问,看看老板会不会去解决提出问题的人。
    no1xsyzy
        14
    no1xsyzy   267 天前
    @Hurriance mkcert 自建 CA 啊,但你的自建 CA 还是自签名的不是?
    自签名说的就是 CA,不是实际使用的证书,主题给的链接就是这套做法,不是说封装起来就不算了的……
    Jirajine
        15
    Jirajine   267 天前 via Android
    @no1xsyzy 自签名是指证书自己给自己签名,证书主体和签发者相同,不是指 private CA 。

    自签证书不安全不代表 private CA 不安全,private CA 私钥自己保管,安全性自己负责,相比之下 public CA 安全性反而不可控。
    自建 CA 推荐直接用 https://smallstep.com/docs/step-ca mkcert 那种开发用的就算了。
    AkideLiu
        16
    AkideLiu   266 天前 via iPhone
    @borivosky 其实原理很简单。你的.local 域名在你的内网存在,我的.local 在我的内网存在。

    你所谓的商业 ca,也就是证书颁发机构无法验证你对于.local 域的所有权。所以不可能给你可信的证书。

    简单道理,你可以去找任何 ca 公司申请 Google.com 的证书,但是如果你不能提供所有权验证,没有人敢也没有人可以把证书颁发给你。

    overall,impossible
    Ptu2sha
        17
    Ptu2sha   266 天前
    目测安全部门在刷 kpi 或者水货?
    joesonw
        18
    joesonw   266 天前
    搜索关键词, kubernetes Using Vault as a CA
    0312birdzhang
        19
    0312birdzhang   266 天前 via iPhone   ❤️ 1
    @dangge +1,停机换证书才是更需要考虑的, .loca 我记得是可以改的。
    tkl
        20
    tkl   265 天前
    @dangge 为什么要等到过期,我提前换
    no1xsyzy
        21
    no1xsyzy   264 天前
    @Jirajine 请参考主楼的教程,其实是在搞自建 CA,而不只是搞一个自签名证书…… 我是在吐槽这个
    话说集群不用 CA 怎么 “互” 信? 要配置 n*(n-1) 个证书么?
    tivizi
        22
    tivizi   256 天前 via iPhone
    我猜让这个扫描工具信任你们所信任的私有 CA 证书就可以,而不是集群换所谓的“商业证书”
    stevefan1999
        24
    stevefan1999   205 天前
    草是要把 kube-controller 這些用自己的 ca 證書替代嗎
    那先看看有沒有足夠的證書而且域名 /ip/SAN 能對應再每一個 node 都這麼一個個把證書手動安裝就可以了
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2016 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:07 · PVG 21:07 · LAX 06:07 · JFK 09:07
    ♥ Do have faith in what you're doing.