GatewayDuplicateCertificate
当选择同一网关工作负载的两个或多个 Gateway 资源使用相同的 TLS 证书时,会出现此消息。
浏览器等客户端可以对证书覆盖的所有主机使用同一个 HTTP/2 连接。
如果这些主机位于不同的 Gateway 资源中,网关可能会在为另一个 Gateway
打开的连接上收到某个主机的请求,此时网关会返回 404 响应。
当服务器使用相同的 credentialName,或相同的 serverCertificate 和 privateKey 时,
分析器会将其识别为相同的证书。
示例
假设有两个 Gateway 资源选择了同一个工作负载,并使用相同的 credentialName:
apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
name: gateway-a
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- a.example.com
tls:
mode: SIMPLE
credentialName: example-com-cert
---
apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
name: gateway-b
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- b.example.com
tls:
mode: SIMPLE
credentialName: example-com-cert您将收到以下消息:
Warning [IST0138] (Gateway default/gateway-a) Duplicate certificate in multiple gateways [default/gateway-a default/gateway-b] may cause 404s if clients re-use HTTP2 connections.如何修复
执行以下操作之一:
- 将共享该证书的所有主机放在同一个
Gateway的同一个服务器中。 - 为每个
Gateway使用不同的证书。