Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 具有TLS发起证书的Istio出口网关\u验证\u失败_Ssl_Kubernetes_Istio - Fatal编程技术网

Ssl 具有TLS发起证书的Istio出口网关\u验证\u失败

Ssl 具有TLS发起证书的Istio出口网关\u验证\u失败,ssl,kubernetes,istio,Ssl,Kubernetes,Istio,我试图在AKS(v1.16.13)上设置istio(v1.7.3),以便对某些HTTP目的地执行TLS发起。因此,当我的一个POD使用HTTP调用abc.mydomain.com时,出口请求将升级为HTTPS,TLS验证将通过出口网关完成 为了实现这一目标,我遵循了以下两个教程: 我最终得到了这样的结果(abc.mydomain.com是一个外部URL,因此我为它创建了ServiceEntry): 我正在为我的CA根目录创建一个秘密:kubectl create secret gener

我试图在AKS(v1.16.13)上设置istio(v1.7.3),以便对某些HTTP目的地执行TLS发起。因此,当我的一个POD使用HTTP调用abc.mydomain.com时,出口请求将升级为HTTPS,TLS验证将通过出口网关完成

为了实现这一目标,我遵循了以下两个教程:

我最终得到了这样的结果(abc.mydomain.com是一个外部URL,因此我为它创建了ServiceEntry):

我正在为我的CA根目录创建一个秘密:
kubectl create secret generic abc cacert--from file=CA.crt=mydomainrootca.crt-n istio system

我已经为我的java应用程序使用了相同的证书,并且我可以使用JKS成功地为相同的url调用HTTPS。证书似乎已正确加载到出口中(
kubectl logs-f-l istio=egressgateway-n istio system
):

当我从集群上运行的pod调用
curl abc.mydomain.com
时,我从出口网关得到了以下错误:

[2020-10-06T19:33:40.902Z] "GET / HTTP/1.1" 503 UF,URX "-" "TLS error: 268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED" 0 91 172 - "192.244.0.191" "curl/7.64.0" "b618b1e6-e543-4053-bf2f-8ae56664545f" "abc.mydomain.com" "192.223.24.254:443" outbound|443||abc.mydomain.com - 192.244.0.188:8443 192.244.0.191:41306 abc.mydomain.com -
知道我做错了什么吗?我对istio很陌生,我不了解DestinationRule/VirtualService的所有需求,所以请跟我谈谈

更新1

将DestinationRules放入运行pod的命名空间后,我得到以下结果:

curl abc.mydomain.com
<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.17.10</center>
</body>
</html>

您好,我看到您将几乎所有内容都放在istio系统名称空间中,这在某些情况下可能会有问题。你是在从一个被istio注入的豆荚中调用旋度吗?是的,它是被istio注入的。您建议将哪些部分移动到pod的命名空间?DestinationRule应与相应的服务位于同一命名空间中。您可以添加用于调用服务的完整curl命令吗?Dzieki:)我使用的curl命令与上面描述的完全相同:curl abc.mydomain.comBtw我刚刚意识到,对于我来说,使用通配符类型的方法而无需发起(istio可以接管https握手)并且在istio讨论中看到了类似的问题,所以我在那里发布了我的问题:。不知道我是否应该把它张贴在stackoverflow上。。。但若你们对此有答案,我会非常乐意接受你们的解决方案。
[2020-10-06T19:33:40.902Z] "GET / HTTP/1.1" 503 UF,URX "-" "TLS error: 268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED" 0 91 172 - "192.244.0.191" "curl/7.64.0" "b618b1e6-e543-4053-bf2f-8ae56664545f" "abc.mydomain.com" "192.223.24.254:443" outbound|443||abc.mydomain.com - 192.244.0.188:8443 192.244.0.191:41306 abc.mydomain.com -
curl abc.mydomain.com
<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.17.10</center>
</body>
</html>
NAME                                                            CDS        LDS        EDS        RDS        ISTIOD                      VERSION
istio-egressgateway-695dc4fc7c-p5p42.istio-system               SYNCED     SYNCED     SYNCED     SYNCED     istiod-5c6b7b5b8f-csggg     1.7.3
istio-ingressgateway-5689f7c67-j54m7.istio-system               SYNCED     SYNCED     SYNCED     SYNCED     istiod-5c6b7b5b8f-csggg     1.7.3
test-5bbfdb8f4b-hg7vf.test                                      SYNCED     SYNCED     SYNCED     SYNCED     istiod-5c6b7b5b8f-csggg     1.7.3