大佬们,最近遇到这么个问题。公司的安全部门使用 Nessus Tenable SC 扫描了公司的服务器,扫出来 k8s 的那几台服务器的自签名证书是不安全的,违反了公司的安全策略(自建的 k8s 服务)。目前网上看到的都是官网的那一套 https://kubernetes.io/docs/concepts/cluster-administration/certificates/ 有没有大佬有用商业证书替换自签名证书的经验分享一下?
1
no1xsyzy 2020-10-30 15:33:38 +08:00
商业证书怎么签给 kubernetes.default.svc.cluster.local 这个域名呢?怎么签给 private IP 呢?
|
2
AkideLiu 2020-10-30 15:41:55 +08:00 via iPhone
商业域名需要 dns 支持,域名真实存在,你这个上不了公网
|
3
kimqcn 2020-10-30 16:03:19 +08:00
内网没必要非得用商用设备证书,又不是给客户看,而且,贵!
非得用,可以使用 cn=ip 的设备证书替换。 国外的 CA (不考虑),国内的 CA,都有。 听说国内在搞统一的国家根设备证书。 |
5
borivosky OP @kimqcn 大佬有没有相关的文章可以参考一下。目前只是想解决自签名证书不被信任的问题,想到的就是把自签名证书换成商业证书。大佬如果有其他的方案可以提示一下吗?
|
8
xyjincan 2020-10-30 16:55:01 +08:00 via Android
安全部门给自建 ca 吗,像以前 12306 一样
|
9
dangge 2020-10-30 17:06:23 +08:00
买一个域名,然后给这个域名签发证书,内网把 DNS 解析全部做成内网 IP 不就好了。。。
然后你可以去找老板发出灵魂拷问: 现在购买的互信证书最长有效期 13 个月,每年要停机换一次证书。 |
10
borivosky OP @xyjincan 这个我不确定安全部门给不给(或者能不能)自建 ca,得等下次开会的时候确认一下。多谢提供思路。
|
11
Hurriance 2020-10-30 17:09:20 +08:00
本地开发环境我是用 mkcert 生成的,不算是自签名的,供楼主参考一下
|
12
borivosky OP @Hurriance 好的,多谢提供思路。其实主要矛盾是使用自签名证书会被 Nessus Tenable SC 扫描出说不安全,当时我想到的就只是用商业证书替换自签名证书。不过可以试一下 mkcert 是不是也会有同样的问题
|
14
no1xsyzy 2020-10-30 19:38:18 +08:00
@Hurriance mkcert 自建 CA 啊,但你的自建 CA 还是自签名的不是?
自签名说的就是 CA,不是实际使用的证书,主题给的链接就是这套做法,不是说封装起来就不算了的…… |
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 那种开发用的就算了。 |
16
AkideLiu 2020-10-30 22:36:50 +08:00 via iPhone
@borivosky 其实原理很简单。你的.local 域名在你的内网存在,我的.local 在我的内网存在。
你所谓的商业 ca,也就是证书颁发机构无法验证你对于.local 域的所有权。所以不可能给你可信的证书。 简单道理,你可以去找任何 ca 公司申请 Google.com 的证书,但是如果你不能提供所有权验证,没有人敢也没有人可以把证书颁发给你。 overall,impossible |
17
Ptu2sha 2020-10-30 22:49:21 +08:00
目测安全部门在刷 kpi 或者水货?
|
18
joesonw 2020-10-30 23:03:54 +08:00
搜索关键词, kubernetes Using Vault as a CA
|
19
0312birdzhang 2020-10-31 07:07:49 +08:00 via iPhone 1
@dangge +1,停机换证书才是更需要考虑的, .loca 我记得是可以改的。
|
21
no1xsyzy 2020-11-02 09:08:55 +08:00
@Jirajine 请参考主楼的教程,其实是在搞自建 CA,而不只是搞一个自签名证书…… 我是在吐槽这个
话说集群不用 CA 怎么 “互” 信? 要配置 n*(n-1) 个证书么? |
22
tivizi 2020-11-10 13:27:28 +08:00 via iPhone
我猜让这个扫描工具信任你们所信任的私有 CA 证书就可以,而不是集群换所谓的“商业证书”
|
23
stevefan1999 2020-12-31 03:26:14 +08:00
|
24
stevefan1999 2020-12-31 03:28:04 +08:00
草是要把 kube-controller 這些用自己的 ca 證書替代嗎
那先看看有沒有足夠的證書而且域名 /ip/SAN 能對應再每一個 node 都這麼一個個把證書手動安裝就可以了 |