未启用Kubernetes入口hsts

3htmauhk  于 2023-01-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(127)

我当前的入口配置是:

apiVersion: "networking.k8s.io/v1"
kind: "Ingress"
metadata:
  name: "app-ingress"
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "app-external-ip"
    kubernetes.io/ingress.class: "gce"
spec:
  tls:
    - hosts:
        - "example.app"
      secretName: "app-tls"
  rules:
    - host: "example.app"
      http:
        paths:
          - path: "/"
            pathType: "Prefix"
            backend:
              service:
                name: "app-service"
                port:
                  number: 80

现在我在为没有启用HSTS而挣扎。2我可以example.app使用http和https协议进入www.example.com,但我想严格限制它只能使用https。3我尝试了:

  • 使用nginx.ingress.kubernetes.io/force-ssl-redirect:“正确”-仍然可以使用http
  • 使用kubernetes.io/ingress.allow-http:“假”-创建谷歌管理证书(即时通讯使用自签名的一个应用程序-tls),这使得ssl证书在浏览器错误。我很肯定第二个应该是选项,我做错了什么或错误配置的东西。
bfrts1fy

bfrts1fy1#

您的入口类是GCE,可能正在使用GCE****入口,因此Nginx****注解不应起作用。
所以你必须创建

apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
  name: my-frontend-config
spec:
  redirectToHttps:
    enabled: true
    responseCodeName: MOVED_PERMANENTLY_DEFAULT

更多信息请访问:文档参考

相关问题