首页 > 解决方案 > Kubernetes Ingress SSL 证书问题

问题描述

我的 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 网站上购买的,它是一个通配符。

标签: sslkubernetesgoogle-cloud-platformgoogle-kubernetes-engine

解决方案


问题基本上是我在生成 TLS 密钥时使用的是 .crt 而不是 .pem。通过更改秘密,我得到 curl 以将其检测为有效证书。

新命令:

kubectl create secret tls ingress-tls --key certificate.key --cert certificate.pem 

感谢@Michael-sqlbot!


推荐阅读