【发布时间】:2019-11-05 03:01:23
【问题描述】:
我的 TLS 有问题。我创建了我的 TLS 密码:
kubectl create secret tls ingress-tls --key certificate.key --cert certificate.crt
我在我的入口中使用它:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "beta"
spec:
tls:
- hosts:
- '*.host.com'
- 'beta.host.com'
secretName: ingress-tls
backend:
serviceName: nginx
servicePort: 443
入口创建完美,我通过浏览器访问没有问题,当我做卷曲或使用程序邮递员时出现问题,我得到证书错误。
curl: (60) SSL 证书问题:无法获取本地颁发者 证书更多细节在这里:https://curl.haxx.se/docs/sslcerts.html
curl 未能验证服务器的合法性,因此可以 不与它建立安全连接。要了解有关此的更多信息 情况以及如何解决,请访问提到的网页 以上。
我正在使用 GCE 驱动程序,它是来自谷歌云的默认 GKE。
我一直在阅读如何添加ca密钥,但是这个错误并没有修复。
我做了以下事情:
kubectl create secret generic ca --from-file certificate.ca.crt
我在入口处添加了以下注释:
ingress.kubernetes.io/auth-tls-secret: ca
但不工作。
有人知道如何修复 CA 证书吗?该证书是在 DonDominio 网站上购买的,它是一个通配符。
【问题讨论】:
-
对于 CURL 问题,请阅读这篇文章。 jhanley.com/curl-ssl-certificate-problem
-
会不会是
cert.pem中没有包含中间证书链?您应该在购买证书时收到它。 -
哦,是的 @Michael-sqlbot 就是这样,我将 .crt 更改为 .pem 并且有效!非常感谢!
标签: ssl kubernetes google-cloud-platform google-kubernetes-engine