相关文章推荐
博学的板凳  ·  Java设置POI XSSFCell ...·  1 月前    · 
傲视众生的碗  ·  LocalDateTime 格式化 ...·  8 月前    · 
朝气蓬勃的面包  ·  Python ...·  9 月前    · 
total 20 -rw-r--r-- 1 Riky Li 197121 2248 一月 8 02:44 3f8368756f7e8925.crt -rw-r--r-- 1 Riky Li 197121 2248 一月 8 02:44 3f8368756f7e8925.pem -rw-r--r-- 1 Riky Li 197121 4795 一月 8 02:44 gd_bundle-g2-g1.crt -rw-r--r-- 1 Riky Li 197121 1704 一月 12 13:19 generated-private-key.txt

我们需要用到的3f8368756f7e8925.crt、gd_bundle-g2-g1.crt、generated-private-key.txt这三个文件

[root@k8s-portal-master1 tls]# cp generated-private-key.txt tls.key
[root@k8s-portal-master1 tls]# cat 3f8368756f7e8925.crt gd_bundle-g2-g1.crt > tls.crt

创建TLS密钥

[root@k8s-portal-master1 tls]# kubectl -n portal create secret tls domain-tls --cert ./tls.crt --key ./tls.key
error: failed to load key pair tls: failed to find any PEM data in key input

出现failed to load key pair tls: failed to find any PEM data in key input错误,使用Notepad++打开原generated-private-key.txt文件,发现文件的编码格式为UTF-8-BOM,切换文件编码为UTF-8,重新保存

[root@k8s-portal-master1 tls]# cp generated-private-key.txt tls.key
cp: overwrite ‘tls.key’? y
[root@k8s-portal-master1 tls]# kubectl -n olami-portal create secret tls domain-tls --cert ./tls.crt --key ./tls.key
secret/domain-tls created

密钥创建成功

更新需要使用证书的ingress,启用TLS认证

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: ui-ingress
  namespace: portal
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
spec:
    - hosts:
        - www.domain.com
      secretName: domain-tls
  rules:
    - host: www.domain.com
      http:
        paths:
          - path: /
            backend:
              serviceName: ui
              servicePort: 80

访问https://www.domain.com,页面打开之后显示证书错误,查看之后并非预期的Godaddy的证书,还是ingress-nginx默认的fake的证书

重启daemonset ingress-nginx-controller 所有的Pod

ingress新增的TLS的配置之后未生效,只好重启所有的ingress-nginx-controller pod,以便完成ingress的更新,所有Pod重启完成后访问https://www.domain.com,页面正常显示,证书加载正常

分类:
后端
  •