【发布时间】:2020-10-16 11:35:37
【问题描述】:
在安装服务网格、网关并应用路由策略后,我尝试在 Istio Ingress Gateway 上启用 HTTPS。最初的 Istio 安装是使用包含 istio-ingressgateway 服务的配置文件完成的。当我这样做时,它会将入口网关创建为Kind: Service 而不是Kind: Gateway。
我看了这个:https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/ 但是,本教程仅描述了如何将证书应用于网关类型而不是服务类型。
将 SSL 证书应用于入口网关服务的正确方法是什么,或者有更好的方法来解决这个问题?
感谢您的帮助!
编辑:问题已解决。
在尝试创建 clusterIssuer 并安装证书管理器等但结果不佳之后,我昨晚回到了教程(证书由于某种原因从未被证书颁发机构接受,所以我只有密钥文件和一个空的证书文件)。最终创建自己的证书变得更加容易。
问题是我在我的虚拟服务中引用了 TLS 端口,而我只需要指向我试图从网关发送流量的服务端口。
这篇文章帮助我更好地理解:Secure Ingress -Istio By Example 以及我上面已经链接的官方 Istio Secure-Ingress 教程。
从那里我刚刚创建了一个新密钥,运行了一个创建工作证书的脚本(基本上只是一个遵循 Istio 教程中的步骤的 bash 脚本),然后确保我的网关文件中的凭证名称与新的我创造的秘密。
【问题讨论】:
-
负载均衡器是否接受证书?如果是这样,请照常应用。
-
正常的方法是什么?我按照教程进行操作,但似乎不起作用。有关更多上下文,当尝试为 istio-ingressgateway 负载均衡器卷曲外部 IP 时,响应如下:
LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to [EXTERNAL IP] -
正常的方法是设置一个外部 LB 指向 istio-ingressgateway;在 LB 上使用 TLS 终止。证书将存储在 LB 中,进一步的连接将通过 HTTP 进行。