如何使用商业证书代替 k8s 组件之间通信的 TLS 证书 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
borivosky
V2EX    Kubernetes

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

  •  
  •   borivosky 2020-10-30 15:10:44 +08:00 5366 次点击
    这是一个创建于 1807 天前的主题,中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    overall,impossible
    Ptu2sha
        17
    Ptu2sha  
       2020-10-30 22:49:21 +08:00
    目测安全部门在刷 kpi 或者水货?
    joesonw
        18
    joesonw  
       2020-10-30 23:03:54 +08:00
    搜索关键词, kubernetes Using Vault as a CA
    1daydayde
        19
    1daydayde  
       2020-10-31 07:07:49 +08:00 via iPhone   1
    @dangge +1,停机换证书才是更需要考虑的, .loca 我记得是可以改的。
    tkl
        20
    tkl  
       2020-11-01 12:24:11 +08:00
    @dangge 为什么要等到过期,我提前换
    no1xsyzy
        21
    no1xsyzy  
       2020-11-02 09:08:55 +08:00
    @Jirajine 请参考主楼的教程,其实是在搞自建 CA,而不只是搞一个自签名证书…… 我是在吐槽这个
    话说集群不用 CA 怎么 “互” 信? 要配置 n*(n-1) 个证书么?
    tivizi
        22
    tivizi  
       2020-11-10 13:27:28 +08:00 via iPhone
    我猜让这个扫描工具信任你们所信任的私有 CA 证书就可以,而不是集群换所谓的“商业证书”
    stevefan1999
        23
    stevefan1999  
       2020-12-31 03:26:14 +08:00
    stevefan1999
        24
    stevefan1999  
       2020-12-31 03:28:04 +08:00
    草是要把 kube-controller 些用自己的 ca 替代
    那先看看有有足的而且域名 /ip/SAN 能再每一 node 都一把手安就可以了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     875 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 21:45 PVG 05:45 LAX 14:45 JFK 17:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86