OKD/OpenShift Edge Route使用TLS Secret出现验证失败问题求助
问题分析与解决步骤
1. 修正TLS Secret创建命令
你创建Secret时搞反了--cert和--key参数:
--cert应指定证书文件(通常为.cer/.crt格式)--key应指定私钥文件(通常为.key格式)
错误命令:
oc create secret tls my-demo-secret --cert=my-demo.key --key=my-demo.cer --namespace=my-demo
正确命令:
oc create secret tls my-demo-secret --cert=my-demo.cer --key=my-demo.key --namespace=my-demo
若已创建错误Secret,先删除再重建:
oc delete secret my-demo-secret -n my-demo
2. 使用Secret的正确Route配置
当通过TLS Secret存储证书和私钥时,Route的tls段不能直接在certificate字段填写Secret名称,需通过secretName字段引用Secret,同时保留必要的TLS策略配置。
正确的Route YAML:
apiVersion: route.openshift.io/v1 kind: Route metadata: name: mydemo-route namespace: my-demo spec: host: my-demo.com to: name: nginx-service port: targetPort: http tls: insecureEdgeTerminationPolicy: Redirect termination: edge secretName: my-demo-secret
3. 验证配置
应用Route配置后,检查路由状态:
oc apply -f route.yaml -n my-demo oc get route mydemo-route -n my-demo
正常情况下,HOST/PORT列会显示my-demo.com,而非ExtendedValidationFailed。
内容的提问来源于stack exchange,提问作者manuel
相关产品推荐
相关产品推荐

