Cert-manager: No configured Challenge Solvers for ACME Prod only

Created on 4 Jan 2020  路  15Comments  路  Source: jetstack/cert-manager

Using the following configuration, I am able to _successfully_ issue certificates using the ACME staging API:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
 name: letsencrypt-staging
 namespace: cert-manager
spec:
 acme:
   # The ACME server URL
   server: https://acme-staging-v02.api.letsencrypt.org/directory
   # Email address used for ACME registration
   email: [email protected]
   # Name of a secret used to store the ACME account private key
   privateKeySecretRef:
     name: letsencrypt-staging
   # Enable the HTTP-01 challenge provider
   solvers:
    - dns01:
        cloudflare:
          email: [email protected]
          apiKeySecretRef:
            name: cloudflare-secret
            key: apikey

However, when then moving to use the production ACME API, using the configuration below, I am left with the error Failed to determine a valid solver configuration for the set of domains on the order: no configured challenge solvers can be used for this challenge

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
 name: letsencrypt-prod
 namespace: cert-manager
spec:
 acme:
   # The ACME server URL
   server: https://acme-v02.api.letsencrypt.org/directory
   # Email address used for ACME registration
   email: [email protected]
   # Name of a secret used to store the ACME account private key
   privateKeySecretRef:
     name: letsencrypt-prod
   # Enable the DNS-01 challenge provider
   solvers:
    - dns01:
        cloudflare:
          email: [email protected]
          apiKeySecretRef:
            name: cloudflare-secret
            key: apikey

FWIW: I did review this upgrade page, which describes the error message I'm receiving, however given that I'm using the updated syntax, I do not believe it applies.

areacme kinbug prioritimportant-soon

Most helpful comment

I've solved the problem on my end. My issue was that I was switching from http01 to dns01 challenge in prod and the Order kept creating with http-01 challenge at the top of the list:

$ kubectl describe order
---
...
Status:
  Authorizations:
    Challenges:
      Token:     xxxxxxxxxxxxxxxxxxxx
      Type:      http-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    false
    Challenges:
      Token:    xxxxxxxxxxxxxxxxxxxx
      Type:      dns-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    true
  Finalize URL:  https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxxxxxxxxxxxxx
  State:         pending
  URL:           https://acme-v02.api.letsencrypt.org/acme/order/xxxxxxxxxxxxxxxxxxxx

So, I have deleted the letsencrypt secrets and the current order and then the certificate got reissued within next 5 mins or so.

kubectl -n cert-manager delete secret letsencrypt-prod 
kubectl -n cert-manager delete secret letsencrypt-stg 
kubectl delete order ingress-tls-cert-xxxxx-xxxxxx

If you are switching from http01 to dns01 and things still don't work, I recommend removing all resources related to cert-manager (helm release, crd, secrets, orders, crs, etc.) and then redeploying it clean. There is a good chance something left behind is interfering with your new setup. That was my case at least.

All 15 comments

Same problem here, only we're using http instead of dns

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: [email protected]
    privateKeySecretRef:
      name: letsencrypt-prod
    server: https://acme-v02.api.letsencrypt.org/directory
    solvers:
    - http01:
        ingress:
          class: nginx

No challenges are created, the order does not complete and the cert-manager shows logs about missing challenges

k8s logs cert-manager-745fcfddc4-8kb9q -n cert-manager

E0207 16:28:12.945941       1 sync.go:111] cert-manager/controller/orders "msg"="Failed to determine the list of Challenge resources needed for the Order" "error"="no configured challenge solvers can be used for this challenge" "resource_kind"="Order" "resource_name"="wildcard-certv2-2132113776-130921517"

I also see an error message that says there is a missing annotation in my Ingress:

I0207 16:43:53.262599       1 sync.go:50] cert-manager/controller/ingress-shim "msg"="not syncing ingress resource as it does not contain a \"cert-manager.io/issuer\" or \"cert-manager.io/cluster-issuer\" annotation" "resource_kind"="Ingress" "resource_name"="XXXXl" "resource_namespace"="XXXX"

My Ingress resource:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/ingress.class: nginx
  name: myIngress
  namespace: myNamespace
spec:
  rules:
  - host: '*.my.site.com'
    http:
      paths:
      - backend:
          serviceName: myService
          servicePort: 8080
  tls:
  - hosts:
    - '*.my.site.com'
    secretName: wildcard-cert
status:
  loadBalancer:
    ingress:
    - {}

I am also hitting this issue. I am wondering if we hit the rate-limit of let's encrypt production api.

Same problem with the latest v0.13.0 helm chart. This works with staging issuer, but not production:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
  namespace: default
spec:
  acme:
    email: [email protected]
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
      - dns01:
          route53:
            region: us-west-2
            hostedZoneID: [READACTED]
            role: arn:aws:iam::[READACTED]:role/[READACTED]

The order itself:

Name:         ingress-tls-cert-xxxxx-xxxxxx
Namespace:    default
Annotations:  cert-manager.io/certificate-name: ingress-tls-cert
              cert-manager.io/private-key-secret-name: ingress-tls-cert
API Version:  acme.cert-manager.io/v1alpha2
Kind:         Order
Metadata:
  Creation Timestamp:  2020-02-12T18:24:21Z
  Generation:          1
  Owner References:
    API Version:           cert-manager.io/v1alpha2
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  CertificateRequest
    Name:                  ingress-tls-cert-xxxxxxxxxx
    UID:                   xxxxxxxxx-4ef0-42a7-b202-xxxxxxxxx
  Resource Version:        42775452
  Self Link:               /apis/acme.cert-manager.io/v1alpha2/namespaces/default/orders/ingress-tls-cert-xxxxxx-xxxxxxxxxxxx
  UID:                     xxxxxx-a72d-4df8-ab12-xxxxxxxx
Spec:
  Csr:  LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ21EQ0NBWUFDQVFBd0Z6RVZNQk1HQTFVRUNoTU1ZMlZ5ZEMxdFlXNWhaMlZ5TUlJQklqQU5CZ2txaGtpRwo5dzBCQVFFRkFBT0NBUThBTUlJQkN....RVUVTVC0tLS0tCg==
  Dns Names:
    domain1.org
    *.domain1.org
  Issuer Ref:
    Group:  cert-manager.io
    Kind:   ClusterIssuer
    Name:   letsencrypt-prod
Status:
  Authorizations:
    Challenges:
      Token:     xxxxxxxxxxxxxxxxxxxxx
      Type:      http-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxx/xxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxx
    Wildcard:    false
    Challenges:
      Token:     xxxxxxxxxxx
      Type:      dns-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxx
    Wildcard:    true
  Finalize URL:  https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxxxx/xxxxxxxxxxx
  State:         pending
  URL:           https://acme-v02.api.letsencrypt.org/acme/order/xxxxxxxxxxx/xxxxxxxxxxx
Events:
  Type     Reason  Age   From          Message
  ----     ------  ----  ----          -------
  Warning  Solver  23m   cert-manager  Failed to determine a valid solver configuration for the set of domains on the Order: no configured challenge solvers can be used for this challenge

The error reported by the order:

```
Failed to determine a valid solver configuration
for the set of domains on the Order: no configured challenge solvers can be used for
this challenge
````

I've solved the problem on my end. My issue was that I was switching from http01 to dns01 challenge in prod and the Order kept creating with http-01 challenge at the top of the list:

$ kubectl describe order
---
...
Status:
  Authorizations:
    Challenges:
      Token:     xxxxxxxxxxxxxxxxxxxx
      Type:      http-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    false
    Challenges:
      Token:    xxxxxxxxxxxxxxxxxxxx
      Type:      dns-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    true
  Finalize URL:  https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxxxxxxxxxxxxx
  State:         pending
  URL:           https://acme-v02.api.letsencrypt.org/acme/order/xxxxxxxxxxxxxxxxxxxx

So, I have deleted the letsencrypt secrets and the current order and then the certificate got reissued within next 5 mins or so.

kubectl -n cert-manager delete secret letsencrypt-prod 
kubectl -n cert-manager delete secret letsencrypt-stg 
kubectl delete order ingress-tls-cert-xxxxx-xxxxxx

If you are switching from http01 to dns01 and things still don't work, I recommend removing all resources related to cert-manager (helm release, crd, secrets, orders, crs, etc.) and then redeploying it clean. There is a good chance something left behind is interfering with your new setup. That was my case at least.

You shouldn't need to completely uninstall cert-manager when changing challenge types - deleting the pending/failed CertificateRequest resources should trigger the process to restart, including selecting the appropriate solver.

You can read more information on how to configure multiple different solvers on a single Issuer/ClusterIssuer here: https://cert-manager.io/docs/configuration/acme/#adding-multiple-solver-types

That said, your included status block here:

Status:
  Authorizations:
    Challenges:
      Token:     xxxxxxxxxxxxxxxxxxxx
      Type:      http-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    false
    Challenges:
      Token:    xxxxxxxxxxxxxxxxxxxx
      Type:      dns-01
      URL:       https://acme-v02.api.letsencrypt.org/acme/chall-v3/xxxxxxxxxxxxxxxxxxxx
    Identifier:  domain1.org
    URL:         https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxxxxxxxxxxxx
    Wildcard:    true
  Finalize URL:  https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxxxxxxxxxxxxx
  State:         pending
  URL:           https://acme-v02.api.letsencrypt.org/acme/order/xxxxxxxxxxxxxxxxxxxx

appears to show that only the HTTP01 challenge type is being allowed for the non-wildcard version of the domains you are validating. This is unexpected as DNS01 validation should also be allowed here... Ultimately that's what is causing your issue I think, and in a quick test locally I'm able to reproduce a similar status output (however in my case, as I also have a configured HTTP01 solver it succeeds in obtaining the certificate, but performs one challenge via HTTP01 and the other via DNS01).

/priority important-soon
/kind bug
/area acme
/assign

With further testing, when changing my Certificate to reference an Issuer pointing to Let's Encrypt's staging environment, I am seeing different challenges offered:

  authorizations:
  - challenges:
    - token: xxx
      type: dns-01
      url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/xxx/xxx
    identifier: example.com
    url: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/xxx
    wildcard: true
  - challenges:
    - token: xxx
      type: http-01
      url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/xxx/xxx
    - token: xxx
      type: dns-01
      url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/xxx/xxx
    - token: xxx
      type: tls-alpn-01
      url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/xxx/xxx
    identifier: example.com
    url: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/xxx
    wildcard: false

I'm not certain why there's different results here.. @jsha do you know any reason why the production endpoint would not be allowing DNS01/TLS-ALPN challenges for the non-wildcard version of a domain, when the staging environment does?

My guess is that you're looking at a challenge that is either already
invalid from a previous attempt, or already valid (via authz reuse). As of
a few months ago, when a challenge is attempted, we remove all the other
challenges from that authz.

/unassign
/cc @JoshVanL

My guess is that you're looking at a challenge that is either already
invalid from a previous attempt, or already valid (via authz reuse)

I think you are right. We don't actually check the Status field when we first fetch the Authorization object, which means we will always attempt to create a Challenge resource even if the Authorization is already valid.

As of a few months ago, when a challenge is attempted, we remove all the other challenges from that authz.

This is probably why we didn't originally see this when implementing this and making it the default behaviour in v0.11 馃槄

This is something we want to fix in the short term for v0.15 and I'm working on a patch to that effect (simply recording the initialState so we can skip creating Challenges if they aren't required).

I think it has raised the need for us to reconsider our Challenge resource type. It'd be better if we had an Authorization resource type which could perform this check and immediately mark itself as valid. This would also make it clearer as to what is going wrong when a 'solving configuration' actually cannot be selected too. This will require a bit more work, and is ultimately a (minor) breaking API change. I think we should target this before cutting v1beta1, and once done, I think this is a good signal that we can push ahead with our beta API release.

So..

v0.15: fixes this issue
v0.16: _properly_ fixes this issue with some underlying improvements to the way we do things to make all this better in future 馃槃

@jsha you mention invalid from a previous attempt here - if the Challenge is now invalid from a previous attempt, presumably re-creating the Order resource will then return a new set of Authorization objects which do contain the failed challenge type, so the challenge can actually be retried in the event of a real failure (i.e. due to a false-positive on our self check due to some external network configuration)

I was seeing symptoms similar to the ones described above using v0.14.1 deployed via helm.
Orders were created and remain in pending, a secret was issued using ACME signer, and no challenge resource was every created.

Using DNS proof via Route53, no http proof.

Via helm, I upgraded to v0.15.0-beta.0 and the challenge was created properly and certificates issued as expected.
:+1:

We are having issue with letsencrypt prod, the tls-secret that it creates should not have tls.crt empty, ca.crt shows empty too in working clusters so I think that may be fine. However, the empty tls.crt field is definitively the one causing Nginx to use fake certificate.

cluster-issuer.yaml

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: [email protected]
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx

Install the cert manager helm chart

helm install
cert-manager
--namespace ingress-public
--version v0.13.0
jetstack/cert-manager

Help needed!

Having the same issue on chart version v1.0.2. I tried the fix @demisx but it didn't help. Any suggestions?

I'm facing also the same problem on chart version V1.0.2 .
using DNS01 Challenge Provider
kubernetes 1.13

Any suggestions?

V1.1.0 I completely deleted everything, but the error is the same

kubectl describe orders --namespace dev  dev-tls-pljng-3804290353
Name:         dev-tls-pljng-3804290353
Namespace:    dev
Labels:       <none>
Annotations:  cert-manager.io/certificate-name: dev-tls
              cert-manager.io/certificate-revision: 1
              cert-manager.io/private-key-secret-name: dev-tls-ll6lh
API Version:  acme.cert-manager.io/v1
Kind:         Order
Metadata:
  Creation Timestamp:  2020-12-15T01:33:19Z
  Generation:          1
  Managed Fields:
    API Version:  acme.cert-manager.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:cert-manager.io/certificate-name:
          f:cert-manager.io/certificate-revision:
          f:cert-manager.io/private-key-secret-name:
        f:ownerReferences:
          .:
          k:{"uid":"0ee6deb4-ef21-48ee-9555-48c16c8bc732"}:
            .:
            f:apiVersion:
            f:blockOwnerDeletion:
            f:controller:
            f:kind:
            f:name:
            f:uid:
      f:spec:
        .:
        f:dnsNames:
        f:issuerRef:
          .:
          f:group:
          f:kind:
          f:name:
        f:request:
      f:status:
        .:
        f:authorizations:
        f:finalizeURL:
        f:state:
        f:url:
    Manager:    controller
    Operation:  Update
    Time:       2020-12-15T01:33:21Z
  Owner References:
    API Version:           cert-manager.io/v1
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  CertificateRequest
    Name:                  dev-tls-pljng
    UID:                   0ee6deb4-ef21-48ee-9555-48c16c8bc732
  Resource Version:        2374449
  Self Link:               /apis/acme.cert-manager.io/v1/namespaces/dev/orders/dev-tls-pljng-3804290353
  UID:                     e88fe97e-33fd-487a-8b37-a2bd9c867ea9
Spec:
  Dns Names:
    newdev.domen.com
  Issuer Ref:
    Group:  cert-manager.io
    Kind:   ClusterIssuer
    Name:   letsencrypt-prod
  Request:  LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ2tUQ0NBWGtDQVFBd0FEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9uRQpOOHJaZ2s0ai8vY2YrWEZHcXcydzU1RmhJSFZKSEQ0Z3BYRlBQSTRMN0ZzZlBHcWk1YnZrbE9KWFozUXVteGNICmhVQWFKSk91Y1RtYVpDeHF6VUFWOWoyNmVJdHgrcnZNWFREWWhyblluYzVrbktNV3dxWEdKWE9VWWljV1NRczAKeHhzdy9tUmNuVUQ1WU1mMjJVbDhwbUl6SFQyWFFGenh2M05MbGx3eUp1TGdqdkxvZHp3cE8rS3RnL0tRSzl2WgpmMXRtNm51MFBYWHV0c2tpcjhia2FEOUFKYWdEVnUxVVpWMEVKMnpvMGtnVmFGTDlyWnUzZGNJNUZxRCtIWHA3CjNzMXhDRnZJR01tWWVEYzlHVTk1NkhRUkxOUzBwQWRkUFROaTM1WTNuWk5LNWpkOWdYdWswRmNMNDNvdS9YMmsKeEcvS1RpWFY1TFpkZW1Gemw3VUNBd0VBQWFCTU1Fb0dDU3FHU0liM0RRRUpEakU5TURzd0xBWURWUjBSQkNVdwpJNEloYm1WM1pHVjJMbk5qYjNWMGN6TnJMbUZ3YVM1ellXNXVZV052WkdVdVkyOXRNQXNHQTFVZER3UUVBd0lGCm9EQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFwck9nTWFpMkJNaXd2aUozeEdyaXRpL1UzVUN5ZkRwOElyTWUKYVF3KzYvY2RtOG9KdkZWTHpYMW5TRWJ0TU0raVB1d3lLTGwrWFlSeFd0M2pKdFFzenNrK0hGU3VjQzlhTjZKQQpCWVBreTNxUjdEL2dWWlpmMGhKT1l3cWVIc3JZMVYwcnpOdGlXcnd2VUFNdDMzbGlKMmZLNldQMTF5d3NXMVYzCjBGV05XelV6R0RJejRoZjNFRUlLTnVzRXBzTVlTMS9rVVVMRHlPT1dYUTNEZEJJZFdVUjNDYnU1VFIwVVp6dFcKQVNPZkxnK0xnRHZXSnpLVGtDZ1JKTnlQSElPQzFPTlBIemgzZDFteWNFczc4d2dMK1ZmUGFMMXdjV2U1YkErdQpuN1VnV0w0RUtQMmtMQkprSEd3VmRUdHh5dDlkNHZmWFJaY2x0VENLUWZEcGZDcUhLQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo=
Status:
  Authorizations:
    Challenges:
      Token:        WfQjHCsr9UKPEDpG2uMZDC76fAK01bATE5JweB_958g
      Type:         http-01
      URL:          https://acme-v02.api.letsencrypt.org/acme/chall-v3/9317936764/RGEQVA
      Token:        WfQjHCsr9UKPEDpG2uMZDC76fAK01bATE5JweB_958g
      Type:         dns-01
      URL:          https://acme-v02.api.letsencrypt.org/acme/chall-v3/9317936764/aLrDrA
      Token:        WfQjHCsr9UKPEDpG2uMZDC76fAK01bATE5JweB_958g
      Type:         tls-alpn-01
      URL:          https://acme-v02.api.letsencrypt.org/acme/chall-v3/9317936764/h7RVUw
    Identifier:     newdev.domen.com
    Initial State:  pending
    URL:            https://acme-v02.api.letsencrypt.org/acme/authz-v3/9317936764
    Wildcard:       false
  Finalize URL:     https://acme-v02.api.letsencrypt.org/acme/finalize/106371774/6747042986
  State:            pending
  URL:              https://acme-v02.api.letsencrypt.org/acme/order/106371774/6747042986
Events:
  Type     Reason  Age   From          Message
  ----     ------  ----  ----          -------
  Warning  Solver  54s   cert-manager  Failed to determine a valid solver configuration for the set of domains on the Order: no configured challenge solvers can be used for this challenge
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
  namespace: cert-manager
spec:
  acme:
    # The ACME server URL
    server: https://acme-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email: [email protected]
    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - dns01:
        cloudflare:
          email: [email protected]
          apiKeySecretRef:
            name: cloudflare-api-token-secret
            key: api-token
      selector:
        dnsNames:
        - '*.host.com'



md5-b3d61684e0262634649c41c92a310270



---
apiVersion: networking.k8s.io/v1beta1 
kind: Ingress
metadata:
  namespace: dev
  name: dev-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 20m
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    kubernetes.io/tls-acme: "true"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/enable-access-log: "true"
spec:
  tls:
  - hosts:
      - newdev.host.com 
      # - scouts.idap.pro
    secretName: dev-tls
  rules:
  - host: newdev.host.com
    http:
      paths:
      - path: /
        backend:
          serviceName: scouts-frontend-dev
          servicePort: 80

Same Issue, not shure what I did wrong. Cert-Manager 1.1.0
ClusterIssuer

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: 'letsencryt-prod'
spec:
  acme:
    email: [email protected]
    preferredChain: ''
    privateKeySecretRef:
      name: letsencrypt-prod
    server: 'https://acme-v02.api.letsencrypt.org/directory'
    solvers:
      - dns01:
          cloudflare:
            apiKeySecretRef:
              key: apikey
              name: cloudflare-apikey-secret
            email: [email protected]
        selector:
          dnsNames:
            - 'mydomain.com'
            - '*.mydomain.com'
            - 'mydomain.xyz'
            - '*.mydomain.xyz'
          matchLabels:
            use-cloudflare-solver: 'true'

Certificate

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: 'mycert'
  namespace: cattle-system
spec:
  dnsNames:
    - 'subdomain.mydomain.com'
  issuerRef:
    kind: ClusterIssuer
    name: letsencrypt-prod
  secretName: mycertificate
Was this page helpful?
0 / 5 - 0 ratings