标签: cert-manager

不存在作为 Secret 颁发的证书

以下是describeclusterissuercertificate资源的输出。我是 cert-manager 的新手,所以不能 100% 确定它设置正确 - 我们需要使用http01验证但是我们没有使用 nginx 控制器。现在我们只有 2 个微服务,所以面向公众的 IP 地址只属于一个 k8s 服务(负载均衡器类型),该服务将流量路由到一个 pod,其中一个可扩展服务代理容器位于运行应用程序代码的容器前面。使用此设置我无法获得除以下错误之外的任何信息,但是正如我所提到的,我是 cert-manager 和 ESP 的新手,因此这可能配置不正确...

Name:         clusterissuer-dev
Namespace:    
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
API Version:  cert-manager.io/v1beta1
Kind:         ClusterIssuer
Metadata:
  Creation Timestamp:  2020-08-07T18:46:29Z
  Generation:          1
  Resource Version:    4550439
  Self Link:           /apis/cert-manager.io/v1beta1/clusterissuers/clusterissuer-dev
  UID:                 65933d87-1893-49af-b90e-172919a18534
Spec:
  Acme:
    Email:  email@test.com
    Private Key Secret Ref:
      Name:  letsencrypt-dev
    Server:  https://acme-staging-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email:  email@test.com
    Uri: …
Run Code Online (Sandbox Code Playgroud)

google-kubernetes-engine cert-manager

16
推荐指数
2
解决办法
1万
查看次数

CertManager Letsencrypt CertificateRequest“无法执行自检GET请求”

Waiting for http-01 challenge propagation: failed to perform self check GET request,它类似于此错误https://github.com/jetstack/cert-manager/issues/656, 但 GitHub 票证评论中的所有解决方案都没有帮助。

我正在尝试CertManager按照本教程中的说明在 DigitalOcean 上进行设置:https : //www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on -digitalocean-kubernetes 我没有收到任何错误,但是来自的请求CertManager在挂起状态等待了 40 多个小时。

我已经使用 Nginx 成功配置了 Ingress,然后我创建了一个命名空间并创建了CertManagerCRD:

$ kubectl create namespace cert-manager
$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml
Run Code Online (Sandbox Code Playgroud)

我可以CertManager按预期看到所有豆荚:

$ kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5c47f46f57-gxhwv              1/1     Running   0          42h
cert-manager-cainjector-6659d6844d-xp75s   1/1     Running   0          42h
cert-manager-webhook-547567b88f-k4dv2      1/1     Running   0          42h
Run Code Online (Sandbox Code Playgroud)

然后我创建了登台发行者:

$ kubectl …
Run Code Online (Sandbox Code Playgroud)

kubernetes lets-encrypt kubernetes-ingress cert-manager nginx-ingress

14
推荐指数
2
解决办法
7038
查看次数

如何修复“调用 webhook“webhook.cert-manager.io”失败”?

我正在尝试设置 K3s 集群。当我有一个主控和代理设置时,证书管理器没有任何问题。现在我正在尝试使用嵌入式 etcd 进行 2 主设置。我为两个虚拟机打开了 TCP 端口64432379-2380执行了以下操作:

VM1: curl -sfL https://get.k3s.io | sh -s server --token TOKEN --cluster-init
VM2: curl -sfL https://get.k3s.io | sh -s server --token TOKEN --server https://MASTER_IP:6443
Run Code Online (Sandbox Code Playgroud)
# k3s kubectl get nodes
NAME  STATUS   ROLES                       AGE    VERSION
VM1   Ready    control-plane,etcd,master   130m   v1.22.7+k3s1
VM2   Ready    control-plane,etcd,master   128m   v1.22.7+k3s1
Run Code Online (Sandbox Code Playgroud)

安装 cert-manager 工作正常:

# k3s kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml
# k3s kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS
cert-manager-b4d6fd99b-c6fpc               1/1     Running
cert-manager-cainjector-74bfccdfdf-gtmrd   1/1 …
Run Code Online (Sandbox Code Playgroud)

kubernetes cert-manager k3s

13
推荐指数
1
解决办法
4万
查看次数

如何使用默认 Ingress 使用 Kubernetes microk8s 设置 Letsencrypt?

最近,我尝试在裸机服务器上使用 microk8s 和默认入口控制器设置 LetsEncrypt。

我在网上找到了一些非常有用的指南,但似乎最近对 microk8s 进行了更新,改变了入口控制器的配置方式。

为了节省大家的时间,我准确地写下了我所做的事情。

如果您遇到困难或需要更好地理解,这里有一些有用的资源。

https://cert-manager.io/docs/installation/kubernetes/

https://cert-manager.io/docs/tutorials/acme/ingress/

该链接对于故障排除非常有用

https://cert-manager.io/docs/faq/acme/

kubernetes lets-encrypt cert-manager nginx-ingress microk8s

10
推荐指数
1
解决办法
8467
查看次数

cert-manager 正在使用 acme 响应程序创建新的入口,而不是修改现有的入口

我正在尝试使用 cert-manager 通过 LetsEncrypt 颁发证书。

我已按照此处的步骤进行操作http://docs.cert-manager.io/en/latest/getting-started/index.html

但是,我现有的入口没有被修改(我认为由于添加了.well-known/....

相反,我看到为此创建的入口,名称如下:cm-acme-http-solver-kgpz6?哪个比较令人困惑?

如果我获得该入口的 yaml,我会看到以下规则:

spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: cm-acme-http-solver-2dd97
          servicePort: 8089
        path: /.well-known/acme-challenge/2T2D_XK1-zIJJ9_f2ANlwR-AcNTm3-WenOExNpmUytY
Run Code Online (Sandbox Code Playgroud)

这究竟是如何运作的?由于文档看起来相当稀疏。

kubernetes cert-manager

9
推荐指数
1
解决办法
8999
查看次数

证书管理的标准入口与istio结合

目前,Istio不支持完全自动化的证书程序.标准入口通过cert-manager支持这一点.是否可以将用于认证管理的标准入口配置与用于其他内容的istio相结合?这种组合的缺点是什么?

ssl-certificate kubernetes google-kubernetes-engine istio cert-manager

9
推荐指数
1
解决办法
181
查看次数

无法获得与证书管理器一起使用的证书

我似乎无法让证书管理器工作:

$ kubectl get certificates -o wide
NAME              READY   SECRET            ISSUER             STATUS                                                                    AGE
example-ingress   False   example-ingress   letsencrypt-prod   Waiting for CertificateRequest "example-ingress-2556707613" to complete   6m23s
$ kubectl get CertificateRequest -o wide
NAME                         READY   ISSUER             STATUS                                                                               AGE
example-ingress-2556707613   False   letsencrypt-prod   Referenced "Issuer" not found: issuer.cert-manager.io "letsencrypt-prod" not found   7m7s
Run Code Online (Sandbox Code Playgroud)

在日志中我看到:

I1025 06:22:00.117292       1 sync.go:163] cert-manager/controller/ingress-shim "level"=0 "msg"="certificate already exists for ingress resource, ensuring it is up to date" "related_resource_kind"="Certificate" "related_resource_name"="example-ingress" "related_resource_namespace"="default" "resource_kind"="Ingress" "resource_name"="example-ingress" "resource_namespace"="default"
I1025 06:22:00.117341       1 sync.go:176] cert-manager/controller/ingress-shim "level"=0 "msg"="certificate resource …
Run Code Online (Sandbox Code Playgroud)

ssl kubernetes cert-manager

9
推荐指数
1
解决办法
1万
查看次数

证书管理器颁发的证书显示为“颁发者:cert-manager.local”而不是 Let's Encrypt,并且不起作用

当我从 Chrome 浏览我的网站时,它说证书无效,如果我检查详细信息,我会看到以下内容:

Issued to:
Common Name (CN)    test.x.example.com
Organization (O)    cert-manager
Organizational Unit (OU)    <Not Part Of Certificate>

Issued by:
Common Name (CN)    cert-manager.local
Organization (O)    cert-manager
Organizational Unit (OU)    <Not Part Of Certificate>
Run Code Online (Sandbox Code Playgroud)

我不明白出了什么问题。从 cert-manager 的输出看来一切都很顺利:

I1002 15:56:52.761583       1 start.go:76] cert-manager "level"=0 "msg"="starting controller"  "git-commit"="95e8b7de" "version"="v0.9.1"
I1002 15:56:52.765337       1 controller.go:169] cert-manager/controller/build-context "level"=0 "msg"="configured acme dns01 nameservers" "nameservers"=["10.44.0.10:53"]
I1002 15:56:52.765777       1 controller.go:134] cert-manager/controller "level"=0 "msg"="starting leader election"
I1002 15:56:52.767133       1 leaderelection.go:235] attempting to acquire leader lease  cert-manager/cert-manager-controller...
I1002 15:56:52.767946 …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes google-kubernetes-engine lets-encrypt cert-manager

8
推荐指数
1
解决办法
6534
查看次数

我可以在 Google Kubernetes 引擎中将 Google 托管证书与 NGINX INGRESS 控制器一起使用吗?

我的 GKE 中有一个 NGINX Ingress。我想让我的 URL 安全。但不幸的是我无法通过证书管理器实现这一点。我看到一个创建托管证书的选项。但我不确定是否有注释允许我在 NGINX Ingress 中使用 google 管理的证书。控制器。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-https
  namespace: non-default
  annotations:
    kubernetes.io/ingress.allow-http: "false"
    kubernetes.io/ingress.class: "nginx"
    networking.gke.io/managed-certificates: "managed-certificate"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    cert-manager.io/issuer: "letsencrypt-production"
spec:
  tls:
    - hosts:
        - example.com
      secretName: selfsigned-cert-tls
  rules:
    - host: example.com
      http:
        paths:
          - path: "/"
            backend:
              serviceName: hello-service
              servicePort: hello-port
          - path: "/kube"
            backend:
              serviceName: hello-kubernetes
              servicePort: 80
Run Code Online (Sandbox Code Playgroud)

当我使用 cert-manager 创建证书时,证书状态显示“Kubernetes Ingress Controller Fake Certificate”

google-kubernetes-engine cert-manager nginx-ingress

8
推荐指数
1
解决办法
1820
查看次数

从订单状态“待定”等待证书颁发

我在使用 cert-manager 处理 tls 证书时遇到了一个问题,我正在关注文档并添加了一些额外的东西Traefik作为入口。

目前,我有这个YAML文件:

cluster-issuer.yaml

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
  namespace: secure-alexguedescom
spec:
  acme:
    email: user@gmail.com
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource used to store the account's private key.
      name: letsencrypt-staging
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
      - selector: {}
        http01:
          ingress:
            class: traefik-cert-manager
Run Code Online (Sandbox Code Playgroud)

traefik-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: letsencrypt-staging
  name: secure-alexguedescom-ingress-http
  namespace: secure-alexguedescom
spec:
  rules: …
Run Code Online (Sandbox Code Playgroud)

ssl kubernetes lets-encrypt cert-manager k3s

8
推荐指数
1
解决办法
6854
查看次数