![](/img/trans.png)
[英]Generate wildcard certificate on Kubernetes cluster with DigitalOcean for my Nginx-Ingress
[英]Kubernetes nginx ingress Certificate Error
我一直在使用我的 Nginx Ingress 一段时间,最近在尝试从我的 pod 内访问 HTTPS 站点时遇到错误。
错误总是一样的:
E1022 17:33:58.843638 1 controller.go:131] cert-manager/controller/orders "msg"="re-queuing item due to error processing" "error"="error creating new order: Get https://acme-v02.api.letsencrypt.org/directory: x509: certificate is valid for ingress.local, not acme-v02.api.letsencrypt.org" "key"="gitlab/git-cert-1197334735-497646583"
我的 gitlab 跑步者也因图像拉取错误而失败,这是相同的
Step 1/8 : FROM node:12.9
Get https://registry-1.docker.io/v2/: x509: certificate is valid for ingress.local, not registry-1.docker.io
ERROR: Job failed: command terminated with exit code 1
我已经从入口官方页面安装入口,我的入口资源如下
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: resources-ingress
namespace: gitlab
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: le-clusterissuer
spec:
tls:
- hosts:
- git.terrainserver.com
secretName: git-cert-secret
- hosts:
- registry.terrainserver.com
secretName: registry-cert-secret
- hosts:
- www.terrainserver.com
secretName: pts-server-cert-secret
rules:
- host: git.terrainserver.com
http:
paths:
- path: /
backend:
serviceName: gitlab
servicePort: 80
- host: registry.terrainserver.com
http:
paths:
- path: /
backend:
serviceName: registry
servicePort: 5000
- host: www.terrainserver.com
http:
paths:
- path: /
backend:
serviceName: pts-server
servicePort: 5000
底线是:问题与证书管理器无关,而不是从 kubernetes pod 连接到安全 URL 的问题
我正在使用证书管理器来管理来自 Let encrypt 的证书。 问题是,从 kubernetes 集群传出的连接无法验证远程主机证书。 我的理解是 Nginx 正在替换从远程主机传入的自己的证书,即 docker 或letsencrypt。 因此与 docker.io 建立连接,但传入证书是本地 nginx 证书。 也许入口正在拦截和替换来自 docker.io 或letsencrypt站点的远程证书?
最后我解决了这个问题。 该错误位于 DNS 记录中。 我在 dns 中激活了通配符路由。 我没有单独输入子域,而是将 *.terrainserver.com 解锁到我的 IP 地址。 这把事情搞砸了,上面给出了错误。
解决方案是删除通配符 DNS 路由并单独定义您的子域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.