公有云配置WebSocket TLS证书

该文档适用于用户对接公有云时为WebSocket配置TLS证书

添加WebSocket证书

申请域名

通过阿里云等机构申请域名,并在公网DNS服务器将域名解析到集群对外开放6060端口的IP

获取并安装证书

从证书签发机构获取证书后,创建wsssecert.yaml文件,通过kubernetes创建证书文件资源

  1. #使用base64加密证书文件
  2. cat 公钥证书.pem | base64 > 公钥证书base64.txt
  3. cat 私钥证书.pem | base64 > 私钥证书base64.txt
  4. #创建wsssecert.yaml文件
  5. vim wsssecert.yaml
  6. apiVersion: v1
  7. data:
  8. websocket域名.crt: #将公钥证书base64.txt内容填写到此处
  9. websocket域名.key: #将私钥证书base64.txt内容填写到此处
  10. kind: Secret
  11. metadata:
  12. labels:
  13. belongTo: rainbond-operator
  14. creator: Rainbond
  15. name: rbd-api-ws-cert
  16. namespace: rbd-system
  1. kubectl apply -f wsssecert.yaml -n rbd-system

修改rbd-api参数

  1. kubectl edit deployment rbd-api -n rbd-system
  2. ···
  3. spec:
  4. containers:
  5. - args:
  6. - --api-addr=0.0.0.0:8888
  7. - --enable-feature=privileged
  8. - --log-level=info
  9. - --mysql=region:goodrain123465!@tcp(rm-uf6wi9113s7kz2453.mysql.rds.aliyuncs.com:3306)/region
  10. - --etcd=http://rbd-etcd:2379
  11. - --api-ssl-enable=true
  12. - --builder-api=rbd-chaos:3228
  13. - --api-addr-ssl=0.0.0.0:8443
  14. - --api-ssl-certfile=/etc/goodrain/region.goodrain.me/ssl/server.pem
  15. - --api-ssl-keyfile=/etc/goodrain/region.goodrain.me/ssl/server.key.pem
  16. - --client-ca-file=/etc/goodrain/region.goodrain.me/ssl/ca.pem
  17. #追加以下参数
  18. - --ws-ssl-enable=true
  19. - --ws-ssl-certfile=/websocketsslPath/websocket域名.crt #证书文件路径,websocketsslPath由下文region-ws-ssl挂载路径加websocket域名.crt拼接而成
  20. - --ws-ssl-keyfile=/websocketsslPath/websocket域名.key #证书文件路径,websocketsslPath由下文region-ws-ssl挂载路径加websocket域名.key拼接而成
  21. ···
  22. ···
  23. ···
  24. volumeMounts:
  25. - mountPath: /grdata
  26. name: grdata
  27. - mountPath: /logs
  28. name: accesslog
  29. - mountPath: /etc/goodrain/region.goodrain.me/ssl/
  30. name: region-api-ssl
  31. #追加以下挂载
  32. - mountPath: /websocketsslPath #自定义挂载路径,ws-ssl-certfile及ws-ssl-keyfile需要用到此路径
  33. name: region-ws-ssl
  34. ···
  35. ···
  36. ···
  37. volumes:
  38. - name: grdata
  39. persistentVolumeClaim:
  40. claimName: rbd-cpt-grdata
  41. - name: accesslog
  42. persistentVolumeClaim:
  43. claimName: rbd-api
  44. - name: region-api-ssl
  45. secret:
  46. defaultMode: 420
  47. secretName: rbd-api-server-cert
  48. #追加以下secret资源
  49. - name: region-ws-ssl
  50. secret:
  51. defaultMode: 420
  52. secretName: rbd-api-ws-cert

修改集群配置

通过 企业视图 >> 集群 >> 编辑,修改对应集群的websocket设置

公有云配置WebSocket TLS证书 - 图1