RouterCertsDegraded for ARO operator

Nagashree 80 Reputation points
2025-11-26T14:10:07.7666667+00:00

Hi Team

When I run oc get co on my cluster, I see below error for authentication operator:

RouterCertsDegraded: secret/<removed hostname by moderator> -n openshift-authentication: certificate could not validate route hostname <removed hostname by moderator>: x509: certificate has expired or is not yet valid: current time 2025-11-26T14:04:43Z is after 2025-06-05T14:49:36Z

But when I check secret (v4-0-config-system-router-certs) in openshift-authentication project, I can see it has not been expired:

 Not Before: May 30 07:29:39 2025 GMT

 Not After : May 30 07:29:40 2027 GMT

As troubleshoot we tried :

https://learn.microsoft.com/en-us/azure/openshift/howto-update-certificates

https://access.redhat.com/solutions/7071296

Please help to resolve this issue with solution

Azure Red Hat OpenShift
Azure Red Hat OpenShift

An Azure service that provides a flexible, self-service deployment of fully managed OpenShift clusters.


1 answer

Sort by: Most helpful
  1. Manish Deshpande 8,135 Reputation points Microsoft External Staff Moderator
    2025-11-27T11:48:44.1466667+00:00

    Hello Nagashree

    The RouterCertsDegraded condition occurs because the authentication operator validates the certificate chain served by the router for the oauth-openshift route.

    • The error shows Not After: 2025-06-05, meaning the router is presenting an expired certificate.
    • The secret v4-0-config-system-router-certs you checked is valid until 2027, but the router is not using that certificate or the bundle contains an expired cert first.
    • On Azure Red Hat OpenShift (ARO), the default ingress certificate is managed by the platform and rotates automatically. If rotation fails or gets stuck, the router continues to serve the old cert, causing this degraded status.
    • Firstly lets verify which certificate is actually served
    host=oauth-openshift.apps.<apps-domain>
    openssl s_client -connect ${host}:443 -servername ${host} -showcerts </dev/null \
    
    
    
    1. If not after shows 2025-06-05, the router is using an expired platform cert.
    2. If it shows your custom cert (valid until 2027).
    • As this step resolved the issue earlier to you Refresh ARO-managed certificates:
    az aro update \
      --name <ClusterName> \
    

    Reference link
    https://learn.microsoft.com/en-us/azure/openshift/howto-update-certificates

    • If using a custom ingress certificate check which secret the router uses:
    oc -n openshift-ingress-operator get ingresscontroller default \
      -o jsonpath='{.spec.defaultCertificate.name}{"\n"}'
    
    
    
    oc -n openshift-ingress get secret <SECRET_NAME> -o jsonpath='{.data.tls\.crt}' \
     | base64 -d | openssl x509 -noout -text | egrep 'Subject:|Issuer:|Not Before|Not After'
    

    Ensure:

    • First cert = wildcard for *.apps.<cluster-domain>.
    • Remove expired certs from the PEM chain.
    • Patch the router if needed
    oc patch ingresscontroller.operator default \
      -n openshift-ingress-operator \
      --type=merge \
      -p '{"spec":{"defaultCertificate":{"name":"<SECRET_NAME>"}}}'
    
    
    

    Restart the router

    oc -n openshift-ingress delete pod -l ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default
    

    Check the certificate again with openssl s_client.

    oc get co authentication
    
    1. Root cause: Router is serving an expired certificate (platform cert not rotated or custom bundle misconfigured).
    2. Fix:
      • For platform certs → run az aro update.
      • For custom certs → verify secret, correct bundle order, patch ingresscontroller, restart router pods.

    Reference

    https://access.redhat.com/solutions/7009467

    If you have any questions please revert back we will be happy to assist you.

    Thanks,
    Manish Deshpande.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.