首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GKE Ingress不使用cert-manager ssl密钥

GKE Ingress不使用cert-manager ssl密钥
EN

Stack Overflow用户
提问于 2021-01-24 23:21:18
回答 2查看 457关注 0票数 0

我正在尝试让letsencrypt与GKE LB一起工作,我知道有GCP管理的证书,但它不会与内部LB一起工作,因为挑战不会通过。Letsencrypt DNS认证使用cert-manager已经存在,可以使用了。

代码语言:javascript
复制
❯ k get secrets letsencrypt-prod -o yaml
apiVersion: v1
data:
  tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdlVZTVhXdGNZZUJpMkdadzljRFRLNzY==
kind: Secret
metadata:
  creationTimestamp: "2021-01-24T15:03:39Z"
  name: letsencrypt-prod
  namespace: elastic-system
  resourceVersion: "3636289"
  selfLink: /api/v1/namespaces/elastic-system/secrets/letsencrypt-prod
  uid: f4bec5a9-d3b5-4f4a-9ec6-01a4ce3ba47c
type: Opaque
代码语言:javascript
复制
spec:
  tls:
    - hosts:
      - staging.example.com
      - staging2.example.com
      secretName: letsencrypt-prod

报告此错误的GCP Error syncing to GCP: error running load balancer syncing routine: error getting secrets for Ingress: secret "letsencrypt-prod" does not specify cert as string data

有没有人能帮我补上它缺失的部分?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-03 00:27:31

实际上,它在文档中遗漏了,或者我遗漏了,因为示例中到处都使用与元数据相同的名称。

代码语言:javascript
复制
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: cert-example
  namespace: example
spec:
  secretName: REAL_NAME_OF_SECRET << This need to include in ingress.
  issuerRef:
    name: letsencrypt-prod
  dnsNames:
  - 'staging.domain.com'
  - '*.staging.domain.com'

所以你应该把REAL_NAME_OF_SECRET放在入口或任何你想使用tls.crttls.key的地方。

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 05:54:31

根据this,您必须提供GCP的有效格式,如您已经提供的Let's Encrypt有效证书:

代码语言:javascript
复制
kubectl create secret generic letsencrypt-prod --from-file=tls.crt="cert.pem" --from-file=tls.key="privkey.pem" --dry-run -o yaml > output
kubectl apply -f output

此外,(看起来您已经在使用它了,但是安全总比抱歉好),您必须按照thisIngresstls部分中定义它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65872354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档