Ian*_*son 5 kubernetes kubernetes-ingress nginx-ingress
我以先问后答的方式问这个问题。
如果您为 Helm 图表或常规“kubectl apply”部署创建 Ingress 对象,则在部署到集群后,您可能会在响应中看到服务器标头。这被视为安全问题。它不应该存在。
您可能无法控制集群或入口控制器。如何删除有问题的标题?
Ian*_*son 12
您可能无法控制集群或入口控制器,但您可以控制入口清单。
在您的每个 Ingress 清单文件中(可能在您的 Helm 图表中),您可以更新您的 Ingress 定义。
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Release.Name}}-{{ .Values.baseName }}-ingress-spa
namespace: {{ .Values.global.config.namespace }}
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/configuration-snippet: |
more_clear_headers "Server";
spec:
tls:
- hosts:
Run Code Online (Sandbox Code Playgroud)
关键部分是:
nginx.ingress.kubernetes.io/configuration-snippet: |
more_clear_headers "Server";
Run Code Online (Sandbox Code Playgroud)
这会指示 nginx 清除服务器标头。重新部署应用程序后,您现在应该看到:
瞧,服务器标头不见了。