תפוגה של אישור CA של mTLS ב-Ingress

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

אין תיעוד מקביל ב-Apigee Edge בנושא הזה.

תיאור הבעיה

הסמל ApigeeIssue עם Reason AIS_INGRESS_MTLS_CA_CERT_EXPIREY מוצג כשמציגים משאבים במרחב השמות apigee.

הודעות שגיאה

אחרי שמריצים את הפקודה kubectl -n apigee get apigeeissues, מוצגת שגיאה כמו זו שבהמשך:

NAME                                    SEVERITY   REASON                             DOCUMENTATION                                                                                  AGE
ca-cert-expired-my-org-my-virtualhost   ERROR      AIS_INGRESS_MTLS_CA_CERT_EXPIREY   https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY   5h18m

סיבות אפשריות

מטרה תיאור
התוקף של אישור ה-CA של mTLS Ingress יפוג בקרוב תוקף אישור ה-CA של mTLS שמוגדר ל-ingress יפוג תוך 14 ימים.
פג התוקף של אישור CA של mTLS של Ingress פג התוקף של אישור ה-CA של mTLS לכניסת תנועה שהוגדר.

הסיבה: התוקף של אישור ה-CA של mTLS ב-Ingress יפוג בקרוב

תוקף אישור ה-CA של mTLS בכניסה שמאוחסן בסוד של Kubernetes שאליו מתייחס ApigeeRouteConfig יפוג תוך 14 ימים.

אבחון

מריצים את הפקודה הבאה:

kubectl -n apigee describe apigeeissue ISSUE_NAME

כאשר ISSUE_NAME הוא שם הבעיה. לדוגמה, ca-cert-expiring-soon-my-org-my-virtualhost.

הפלט אמור להיראות כך:

Name:         ca-cert-expiring-soon-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_MTLS_CA_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Reason:         AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Severity:       WARNING
Events:           <none>
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC

התוכן של Spec.Details מסביר את השם של ApigeeRouteConfig שמתייחס לסוד של Kubernetes שמכיל את אישור ה-CA של mTLS של הכניסה, שתוקפו עומד לפוג בקרוב.

רזולוציה

  1. משתמשים בפקודה kubectl describe כדי להציג את השם של ApigeeRouteConfig שכולל את אישור ה-CA של mTLS לכניסה, שתוקפו יפוג בקרוב:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    כאשר ISSUE_NAME הוא שם הבעיה. לדוגמה, ca-cert-expiring-soon-my-org-my-virtualhost.

    בדוגמה הזו, ApigeeRouteConfig my-org-my-virtualhost מפנה לסוד my-org-my-virtualhost.

  2. קובעים את השם של virtualhost מתוך ApigeeRouteConfig.

    השם של ApigeeRouteConfig הוא בפורמט: <Apigee organization>-<virtualhost name>.

    בדוגמה הזו, my-org הוא הארגון ב-Apigee ושם המארח הווירטואלי הוא my-virtualhost.

  3. מאתרים את ה-virtualhost המתאים ב-overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      caCertPath: ./certs/ca.pem
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. מעדכנים את אישור CA שמופיע בקובץ caCertPath.

  5. מחילים את השינוי על ה-virtualhost:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

הסיבה: פג התוקף של אישור CA של mTLS של Ingress

פג התוקף של אישור רשות האישורים של mTLS בכניסה, שמאוחסן בסוד של Kubernetes שאליו מתבצעת הפניה על ידי ApigeeRouteConfig.

אבחון

מריצים את הפקודה הבאה:

kubectl -n apigee describe apigeeissue ISSUE_NAME

כאשר ISSUE_NAME הוא שם הבעיה. לדוגמה, ca-cert-expired-my-org-my-virtualhost.

הפלט אמור להיראות כך:

Name:         ca-cert-expired-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_MTLS_CA_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Reason:         AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Severity:       ERROR
Events:           <none>
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC

התוכן של Spec.Details מסביר את השם של ApigeeRouteConfig שמתייחס לסוד של Kubernetes שמכיל את אישור ה-CA של mTLS של הכניסה שפג תוקפו.

רזולוציה

  1. משתמשים בפקודה kubectl describe כדי להציג את השם של ApigeeRouteConfig שלו יש אישור CA של mTLS נכנס שתוקפו פג:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    כאשר ISSUE_NAME הוא שם הבעיה. לדוגמה, ca-cert-expired-my-org-my-virtualhost.

    בדוגמה הזו, ApigeeRouteConfig my-org-my-virtualhost מפנה לסוד my-org-my-virtualhost.

  2. קובעים את השם של virtualhost מתוך ApigeeRouteConfig.

    השם של ApigeeRouteConfig הוא בפורמט: <Apigee organization>-<virtualhost name>.

    בדוגמה הזו, my-org הוא הארגון ב-Apigee ושם המארח הווירטואלי הוא my-virtualhost.

  3. מאתרים את ה-virtualhost המתאים ב-overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      caCertPath: ./certs/ca.pem
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. מעדכנים את אישור CA שמופיע בקובץ caCertPath.

  5. מחילים את השינוי על ה-virtualhost:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

צריך לאסוף פרטי אבחון

אם הבעיה נמשכת גם אחרי שמבצעים את ההוראות שלמעלה, צריך לאסוף את פרטי האבחון הבאים ואז לפנות אל Cloud Customer Care:

  1. מזהה הפרויקט ב- Google Cloud .
  2. השם של הארגון ב-Apigee Hybrid.
  3. השדה Spec.Details של ApigeeIssue.
  4. (אופציונלי) קובץ שאליו יש הפניה מ-caCertPath עבור המארח הווירטואלי המושפע.