kubernetes - OpenShift 边缘 TLS 终止路由不起作用。CWWKO0801E: 无法初始化 SSL 连接
问题描述
任何人都可以帮我处理 Open-Shift 路线吗?
我已经设置了一个带有 Edge TLS 终止的路由,对服务端点 ( https://openshift-pmi-dev.apps.vapidly.os.fyre.ibm.com ) 的调用会导致:
502 Bad Gateway
The server returned an invalid or incomplete response.
来自 pod 的日志有以下错误我使用端点进行 REST 调用
CWWKO0801E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.ibm.jsse2.c.a(c.java:6)
at com.ibm.jsse2.as.a(as.java:532)
at com.ibm.jsse2.as.unwrap(as.java:580)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:5)
at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.readyInbound(SSLConnectionLink.java:515)
默认直通路由终止有效!但这不允许我指定基于路径的路由。因此,尝试使用带有边缘 TLS 终止的路由,我尝试使用单个主机名https 将流量从 /ibm/pmi/service 路由到 apm-pm-api-service,并将 /ibm/pmi 路由到 apm-pm-ui-service: //openshift-pmi-dev.apps.vapidly.os.fyre.ibm.com。
我已将 SSL 证书加载到边缘路由中,自由服务通过 deploy.yaml 中定义的机密使用相同的证书。
我无法确定此 SSL 相关错误的根本原因,这是来自 wlp liberty 应用程序服务器还是 openshift 路由问题?
有关如何使自由应用程序正常工作的任何建议。
提前感谢您的帮助!
附加 route.yaml
kind: Route
apiVersion: route.openshift.io/v1
metadata:
name: openshift-pmi-dev
namespace: default
selfLink: /apis/route.openshift.io/v1/namespaces/default/routes/openshift-pmi-dev
uid: 9ba296f6-1611-11ea-a1ab-0a580afe00ab
resourceVersion: '6819345'
creationTimestamp: '2019-12-03T21:12:26Z'
annotations:
haproxy.router.openshift.io/balance: roundrobin
haproxy.router.openshift.io/hsts_header: max age=31536000;includeSubDomains;preload
spec:
host: openshift-pmi-dev.apps.vapidly.os.fyre.ibm.com
subdomain: ''
path: /ibm/pmi/service
to:
kind: Service
name: apm-pm-api-service
weight: 100
port:
targetPort: https
tls:
termination: edge
certificate: |
-----BEGIN CERTIFICATE-----
<valid cert>
-----END CERTIFICATE-----
key: |
-----BEGIN RSA PRIVATE KEY-----
<valid cert>
-----END RSA PRIVATE KEY-----
caCertificate: |
-----BEGIN CERTIFICATE-----
<valid cert>
-----END CERTIFICATE-----
insecureEdgeTerminationPolicy: Redirect
wildcardPolicy: None
status:
ingress:
- host: openshift-pmi-dev.apps.vapidly.os.fyre.ibm.com
routerName: default
conditions:
- type: Admitted
status: 'True'
lastTransitionTime: '2019-12-03T21:12:26Z'
wildcardPolicy: None
routerCanonicalHostname: apps.vapidly.os.fyre.ibm.com
将 Route 更改为 Re-encryte,导致 Application is not available 502 错误。似乎请求没有到达服务。
解决方案
边缘终止意味着 http(明文)到后端服务,但您的路由不遗余力地将 http 发送到 https 端口。
删除端口:https 或使用“重新加密”终止而不是“边缘”
推荐阅读
- php - 不要使用 DeepL 和 DeepL WordPress 插件翻译特定元素
- c# - 是否可以使用带有附加事件的 Microsoft.Xaml.Behaviors.EventTrigger 调用命令?
- c++ - 没有枚举数的未命名枚举的身份
- list - 如果没有为此 S4 类定义 $ 运算符,我如何从 glmerMod 对象中提取模型组件
- pandas - Pandas 库,使用 DataFrame
- syntax - 出现 VHDL 组件语法错误。问题在于 IF 语句期间的 Adder_4bit。即使没有差异,以前的组件也可以正常工作
- api - 非 Pro CoinBase API 签名无效
- python - 如何获取嵌套列表的名称?
- r - 避免在 S4 R 类系统中向上转换
- c# - Wave 文件的 FFT 与 Audacity 的绘图频谱不匹配