# SSL 证书

Kuboard v3 容器对外暴露三个端口:

  • 80 Kuboard Web 服务端口,TCP;
  • 443 Kuboard Web 服务端口,TCP;
  • 10081 Kuboard Agent Server 端口,TCP 、 UDP。

其中,Web 服务端口在如下两种情况下需要配置 SSL 证书:

  • 通过公网访问 Kuboard 界面,提高安全性;
  • 为被纳管的 Kubernetes 配置 OIDC,与 Kuboard 实现单点登录(如不配置,通过 Kuboard 管理 Kubernetes 时,Kubernetes 只能将用户识别成 kuboard-admin 或者 kuboard-user 这两个 ServiceAccount 当中的一个)

Kuboard Agent Server 端口使用 TCP、UDP 通信,是私有协议,已经自动配置了 TLS 加密连接,无需用户额外配置证书;此外,该端口只提供给安装到 Kubernetes 集群中的 Kuboard Agent 访问,无需暴露到公网。

# Certificates

您可以加载 SSL 证书到 Kuboard 容器中,并且配置好证书对应的路径以支持 HTTPS 访问;

Tips

启动命令如下所示:



 
 
 
 










sudo docker run -d \
  --restart=unless-stopped \
  -v /hostpath/to/your/server.crt:/etc/certs/my.company.com/server.crt \
  -v /hostpath/to/your/server.key:/etc/certs/my.company.com/server.key \
  -e KUBOARD_TLS_CERT=/etc/certs/my.company.com/server.crt \
  -e KUBOARD_TLS_KEY=/etc/certs/my.company.com/server.key \
  -p 80:80/tcp \
  -p 443:443/tcp \
  -p 10081:10081/tcp \
  -p 10081:10081/udp \
  -e KUBOARD_ENDPOINT="https://kuboard.my-company.com" \
  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

其中:

  • 第 3 - 4 行,将证书的 crt 文件和 key 文件从宿主机映射到 Kuboard 容器的某一个路径;
  • 第 5 - 6 行,通过环境变量指定 Kuboard 使用该证书;
  • 其他参数请参考 安装 Kuboard v3

# Lets Encrypt

Lets Encrypt 是一个开源免费的证书颁发机构,如果您直接在公网上访问 Kuboard,建议使用 Lets Encrypt 配置 SSL 证书。

启动命令如下所示:




 


 
 






sudo docker run -d \
  --restart=unless-stopped \
  -p 80:80/tcp \
  -p 443:443/tcp \
  -p 10081:10081/tcp \
  -p 10081:10081/udp \
  -e KUBOARD_TLS_AUTOCERT=true \
  -e KUBOARD_TLS_DOMAIN=kuboard.my-company.com \
  -e KUBOARD_ENDPOINT="https://kuboard.my-company.com" \
  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3
1
2
3
4
5
6
7
8
9
10
11
12
13

其中:

  • 第 4 行将 443 端口映射到宿主机的 443 端口。
  • 第 7 行激活 Kuboard 中的 Lets Encrypt 客户端;
  • 第 8 行指定 Lets Encrypt 颁发证书时对应的域名;

使用 Lets Encrypt 时,请将 kuboard.my-company.com 域名指向您的 Kuboard 所在宿主机的公网 IP,并且确保 80, 443 端口开放。Kuboard 启动后,在您第一次访问 https://kuboard.my-company.com 时,Lets Encrypt 将自动申请证书(浏览器上显示第一次访问将失败)。等候 1-5 分钟时间,再次访问 https://kuboard.my-company.com 时,您将能够成功访问,证书也已经颁发并且自动配置好;通常免费证书有效期是一年时间,证书到期前一个月,系统会自动为您更新证书,无需您额外做任何操作。

更新时间: 2021-06-05 22:48:50