Mutual TLS, או mTLS, הוא פרוטוקול מקובל בתחום לאימות הדדי בין לקוח לשרת. הוא מבטיח שגם הלקוח וגם השרת מאמתים זה את זה על ידי בדיקה שלכל אחד מהם יש אישור תקף שהונפק על ידי רשות אישורים (CA) מהימנה. בניגוד ל-TLS רגיל, שבו רק השרת מאומת, ב-mTLS הלקוח והשרת צריכים להציג אישורים, כדי לאמת את הזהויות של שני הצדדים לפני שנוצרת התקשורת.
mTLS מוגדר במשאב של שרת ה-proxy ל-HTTPS של היעד בכל מאזני העומסים של האפליקציות:
- מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
- מאזן עומסים קלאסי של אפליקציות (ALB)
- מאזן עומסים חיצוני אזורי של אפליקציות (ALB)
- מאזן עומסים פנימי אזורי של אפליקציות (ALB)
- מאזן עומסים פנימי של אפליקציות (ALB) באזורים שונים
ב-mTLS נעשה שימוש בתשתית של מפתח ציבורי (PKI) כדי לאמת את הזהות של הישויות שמתקשרות ברשת. התשתית כוללת שלושה רכיבים: לקוח, שרת ורשות אישורים (CA). פרוטוקול mTLS למאזני עומסים תומך בתכונות הבאות:
מוודאים שללקוח שמציג את האישור יש את המפתח הפרטי שלו.
מאמתים את אישורי הלקוח באמצעות אחד ממצבי האימות של הלקוח.
אימות אישורי לקוח מול עוגן PKI שהועלה (אישור בסיס), עם אפשרות להוסיף כמה עוגנים בנפרד כדי לאפשר העברה חלקה מ-PKI ישן לחדש בלי זמן השבתה.
צריך לספק אישורי ביניים נוספים כדי לעזור בבניית נתיב האימות של אישור הלקוח מול עוגני PKI שצוינו (אישורי בסיס). האישורים האלה מאפשרים ל-mTLS לפעול עם לקוחות שלא מספקים את שרשרת האישורים המלאה.
יוצרים טביעת אצבע של האישור ומעבירים אותה לקצה העורפי כ-request header בהתאמה אישית.
העברת שדות נבחרים שחולצו מהאישור לקצה העורפי באמצעות כותרות בהתאמה אישית.
מעבירים את תוצאת האימות ואת כל שגיאות האימות לקצה העורפי באמצעות כותרות בהתאמה אישית.
דרישות לאישורים
כשמגדירים אישורים ל-mTLS, צריך לוודא שהם עומדים בדרישות הבאות:
כלי קריפטוגרפיה מודרניים הם הבסיס לאימות mTLS. האישורים חייבים להשתמש באלגוריתמים מסוג RSA או ECDSA לחילופי מפתחות.
לאישורי לקוח (קצה):
התוסף Basic Constraints לא יכול להכיל את הערך
CA=true.התוסף שימוש מורחב במפתח חייב להכיל את הערך
clientAuth.התוסף Extended Key Usage לא יכול להכיל את השדות
codeSigning,timeStampingאוOCSPSigning.האישור צריך להיות בתוקף.
אישור הלקוח לא יכול להיות אישור עם חתימה עצמית.
לאישורי בסיס ואישורי ביניים:
התוסף Basic Constraints חייב להכיל את הערך
CA=true.התוסף Key Usage צריך להיות מוגדר ל-
keyCertSign.התוסף Extended Key Usage צריך להכיל את השדה
clientAuth.האישור צריך להיות בתוקף.
ארכיטקטורה של פריסת mTLS
באמצעות mTLS, אתם יכולים להגדיר משאב של הגדרת אמון שמכיל מאגר אישורים. מאגר האישורים כולל ישות עוגן אמינה (אישור בסיס) ואופציונלית, אישור ביניים אחד או יותר. כשהמערכת לאיזון עומסים מקבלת אישור לקוח, היא מאמתת אותו על ידי יצירת שרשרת אמון מאישור הלקוח בחזרה לישות העוגן האמינה שהוגדרה.
בהמשך מופיעה סקירה כללית קצרה של המשאבים השונים שצריך להגדיר כדי להגדיר mTLS למאזן העומסים:
הגדרת האמינות. מכיל משאב אחד של מאגר אישורים, שכולל ישות עוגן אמינה (אישור בסיס) ואופציונלית, אישור ביניים אחד או יותר. הגדרת האמון משמשת ליצירת שרשרת אמון בין אישור הלקוח לבין ישות העוגן האמינה. מידע נוסף מופיע במאמר הגדרות אמון.
אם אתם צריכים להשתמש באישור עם חתימה עצמית, באישור שפג תוקפו או באישור לא חוקי מסיבה אחרת, או אם אין לכם גישה לאישורי הבסיס והביניים, אתם יכולים להוסיף את האישור להגדרת האמון בשדה
allowlistedCertificates. לא צריך מאגר אישורים כדי להוסיף אישור לרשימת ההיתרים.הוספת אישור לרשימת ההיתרים פירושה שהאישור תמיד נחשב לתקף, כל עוד אפשר לנתח אותו, הוכחה החזקה במפתח הפרטי והאילוצים בשדה SAN של האישור מתקיימים.
מאגר אישורים. מכיל את ישות העוגן האמינה ואת אישורי הביניים של רשות האישורים (CA) שמשמשים ליצירת שרשרת אמון ולאימות אישור הלקוח. רשות האישורים משמשת להנפקת אישורים מהימנים ללקוח. רשות האישורים מזוהה על ידי ישות העוגן האמינה של מאזן העומסים (אישור בסיס) או אישורי ה-CA של הביניים.
אפשר להעלות למאגר האישורים את הסוגים הבאים של אישורי בסיס ואישורי ביניים:
- אישורים שהונפקו על ידי רשויות אישורים (CA) של צד שלישי לבחירתכם.
- אישורים שהונפקו על ידי רשויות אישורים פרטיות שבשליטתכם, כפי שמתואר במאמר הגדרת Mutual TLS עם רשות אישורים פרטית.
- אישורים שהמשתמשים מספקים, כמו שמתואר במאמר הגדרת Mutual TLS עם אישורים שהמשתמשים מספקים.
אימות לקוח (נקרא גם
ServerTLSPolicy). מציין את מצב אימות הלקוח ואת משאב הגדרת האמון שבו צריך להשתמש כשמאמתים אישורי לקוח. כשהלקוח מציג למאזן העומסים אישור לא חוקי או לא מציג אישור בכלל, מצב האימות של הלקוח קובע איך לטפל בחיבור של הלקוח. אתם יכולים לציין את כל הפרמטרים שקשורים לאימות mTLS בכללי מדיניות ה-TLS של השרת. משאב אימות הלקוח (ServerTLSPolicy) מצורף למשאב של שרת ה-Proxy ל-HTTPS.
בתרשימים הבאים מוצגים הרכיבים השונים של mTLS שמצורפים למשאב של שרת ה-Proxy ל-HTTPS של היעד, במאזני עומסים של אפליקציות גלובליים ואזוריים.
גלובלית
בתרשים הבא מוצגים הרכיבים של פריסת מאזן עומסים חיצוני של אפליקציות (ALB). הארכיטקטורה הזו רלוונטית גם למאזן עומסים פנימי של אפליקציות (ALB) חוצה-אזורים, שהוא מאזן עומסים פנימי של אפליקציות (ALB) שמשתמש ברכיבים גלובליים.
אזורי
בתרשים הבא מוצגים הרכיבים של פריסת מאזן עומסים פנימי אזורי של אפליקציות. הארכיטקטורה הזו רלוונטית גם למאזן עומסים חיצוני אזורי של אפליקציות (ALB), שהוא מאזן עומסים חיצוני של אפליקציות (ALB) שמשתמש ברכיבים אזוריים.
מצבי אימות לקוח
המאפיין clientValidationMode במשאב Client Authentication (ServerTLSPolicy) מציין איך מאזן העומסים מטפל בחיבור של הלקוח. המצב קובע אם אישורי לקוח לא תקינים או חסרים נדחים באופן מחמיר (REJECT_INVALID), נדחים למעט בדיקות X.509 ספציפיות ופחות מחמירות (ALLOW_VALIDATION_RELAXATIONS) או מועברים לקצה העורפי (ALLOW_INVALID_OR_MISSING_CLIENT_CERT).
אלה מצבי האימות השונים של הלקוח:
- אישור אישורי לקוח לא תקינים או חסרים (
ALLOW_INVALID_OR_MISSING_CLIENT_CERT) - דחיית אישורי לקוח לא חוקיים (
REJECT_INVALID) - אישור הקלות באימות (
ALLOW_VALIDATION_RELAXATIONS)
אישור לקוח לא תקין או חסר
במצב ALLOW_INVALID_OR_MISSING_CLIENT_CERT, החיבור מהלקוח מתאפשר גם אם אישור הלקוח נכשל באימות או אם הלקוח לא מציג אישור. במצב הזה, מאזן העומסים מאפשר את החיבור מהלקוח ומעביר את כל הבקשות לקצה העורפי, גם אם אי אפשר ליצור שרשרת אמון.
ההוכחה להחזקה במפתח הפרטי נבדקת תמיד כשמוצג אישור הלקוח. אם הלקוח לא יכול להוכיח שיש לו את המפתח הפרטי, לחיצת היד בפרוטוקול TLS מסתיימת גם אם מצב אימות הלקוח מאפשר אישור לקוח לא חוקי או חסר.
דחיית אישור לקוח לא תקין
במצב REJECT_INVALID, החיבור נדחה אם הלקוח לא מספק אישור או אם אימות האישור נכשל. במצב הזה, מאזן העומסים סוגר את החיבור מהלקוח אם הוא לא מצליח ליצור שרשרת אמון מאישור הלקוח בחזרה לישות העוגן האמינה.
הקלות באימות
במצב ALLOW_VALIDATION_RELAXATIONS מתבצע אימות של אישורי הלקוח, אבל אפשר להקל על בדיקות אימות ספציפיות – לדוגמה, במהלך העברה כשאישורי לקוח מדור קודם לא עומדים בכל הדרישות המחמירות של האישורים. אם יש לכם משאב ServerTLSPolicy קיים במצב REJECT_INVALID, אתם יכולים לעדכן אותו כדי להשתמש במצב ALLOW_VALIDATION_RELAXATIONS ולציין את רשימת ההקלות באימות שאתם רוצים לאפשר.
אפשר לציין ערך אחד או יותר מהערכים הבאים בשדה clientValidationRelaxations:
ALLOW_MISSING_EKU: מאפשר להשמיט מאישור הלקוח את התוסף Extended Key Usage (EKU).ALLOW_MISSING_EKUמאפשר רק אישור שאין לו תוסף EKU בכלל, ולא מתעלם מתוסף EKU שקיים עם מטרה שגויה. לדוגמה, אם תוסף ה-EKU קיים באישור הלקוח, הוא עדיין צריך לכלול את מטרת המפתחclientAuth(OID 1.3.6.1.5.5.7.3.2) כפי שצוין בדרישות האישור. אם לאישור יש תוסף EKU שמציין מטרה אחרת (כמוserverAuth) אבל לא אתclientAuth, החיבור נדחה.
ALLOW_SHA1_HASHING: מאפשרת אימות של שרשראות אישורי לקוח שנחתמו באמצעות תמציות הודעות SHA-1 מדור קודם.
ALLOW_EXPIRED_LEAF_CERTIFICATE: מאפשרת לאמת אישור קצה של לקוח שפג תוקפו. מאזן העומסים מאמת את אישור הקצה של הלקוח שפג תוקפו כאילו השעה הנוכחית הייתה שנייה אחת לפני סיום תקופת התוקף שלו (notAfterפחות שנייה אחת). כך אישור הקצה של הלקוח יעבור את בדיקת התפוגה. ההקלה הזו חלה רק על אישור הקצה של הלקוח, ולא על אישורי ביניים או אישורי בסיס בשרשרת. אישורי קצה של לקוחות שעדיין לא תקפים (כשהשעה הנוכחית היא לפני חותמת הזמןnotBefore) עדיין נדחים.
במצב ALLOW_VALIDATION_RELAXATIONS נדרש אישור לקוח, ושרשרת האישורים מאומתת מול משאב הגדרת האמון שהוגדר, תוך החלת הקלות האימות הספציפיות שציינתם בשדה clientValidationRelaxations.
כשבוחרים באפשרות ALLOW_VALIDATION_RELAXATIONS, צריך לציין לפחות הקלה אחת באימות. אם בוחרים כמה הקלות, כולן מופעלות בו-זמנית. כל עוד הלקוח מספק אישור שתקף אחרי החלת ההקלות שנבחרו, מאזן העומסים מקבל את החיבור. לדוגמה, אם מגדירים את ALLOW_MISSING_EKU ו-ALLOW_SHA1_HASHING, מאזן העומסים מקבל חיבורים מלקוחות שמציגים אישורים תקינים, אבל משמיטים את התוסף Extended Key Usage (EKU) ומשתמשים בגיבוב SHA-1.
אם הלקוח לא מספק אישור, או אם אימות האישור נכשל מסיבה כלשהי שלא נכללת בהקלות שהוגדרו, מאזן העומסים מסיים את החיבור ומתעד את השגיאה ב-Cloud Logging.
Google Cloud ממליצה להשתמש בהקלות באימות רק כפתרון זמני במהלך העברת אישורים. השימוש ב-ALLOW_VALIDATION_RELAXATIONS בטוח יותר מהשימוש ב-ALLOW_INVALID_OR_MISSING_CLIENT_CERT, כי מאזן העומסים עדיין אוכף את כל בדיקות האימות האחרות ולא דורש לוגיקת אימות מותאמת אישית בקצה העורפי.
הגדרת mTLS במאזן העומסים
כאן מפורטים השלבים העיקריים שצריך לבצע כדי להגדיר mTLS במאזן העומסים:
יוצרים משאב של הגדרת אמינות שמורכב מישות העוגן האמינה (אישור הבסיס) ומאישורי ביניים שמשמשים כ-Root of Trust.
מקשרים את הגדרת האמינות למשאב Client Authentication (
ServerTLSPolicy), שמגדיר את מצב האימות של הלקוח.מצרפים את המשאב Client Authentication (
ServerTLSPolicy) למשאב של שרת ה-Proxy ל-HTTPS של מאזן העומסים.אופציונלי: אתם יכולים להשתמש בכותרות mTLS בהתאמה אישית כדי להעביר מידע על חיבור ה-mTLS לשירות לקצה העורפי או למפת כתובות URL.
במדריכים הבאים מוסבר בפירוט איך להגדיר את זה:
שלבים לאימות אישור הלקוח
במהלך אימות אישור הלקוח, מאזן העומסים מבצע את הפעולות הבאות:
מוודאים שהמפתח הפרטי נמצא אצל הלקוח.
הלקוח מוכיח את הבעלות על המפתח הפרטי שמשויך למפתח הציבורי באישור, על ידי יצירת חתימה במהלך תהליך לחיצת היד. מאזן העומסים מאמת את החתימה הזו באמצעות המפתח הציבורי של הלקוח. אם אימות החתימה נכשל, זה אומר שהלקוח הוא לא הבעלים של האישור. במקרה כזה, לחיצת היד בפרוטוקול TLS מסתיימת גם אם ההגדרות שלכם מאפשרות אישור לקוח לא תקין או חסר. במאזני עומסים גלובליים חיצוניים של אפליקציות לא נרשמות שגיאות ביומן, אבל במאזני עומסים אזוריים חיצוניים של אפליקציות ובמאזני עומסים פנימיים של אפליקציות נרשמת שגיאת TLS בשדה
proxyStatus.אימות שרשרת האמון.
מאזן העומסים מאמת את שרשרת האמון על ידי אימות של אישור הלקוח מול האישורים שהוגדרו בהגדרת האמון. מצב אימות הלקוח קובע אם אישורי לקוח לא חוקיים או חסרים נדחים באופן מחמיר (
REJECT_INVALID), נדחים למעט בדיקות X.509 ספציפיות ופחות מחמירות (ALLOW_VALIDATION_RELAXATIONS) או מועברים לקצה העורפי (ALLOW_INVALID_OR_MISSING_CLIENT_CERT).בדיקות האימות כוללות גם את הדברים הבאים:
- אישורי הלקוח, אישורי הביניים והאישורים הבסיסיים עומדים בדרישות האישורים.
- השדה "נושא" באישור ההורה תואם לשדה "מנפיק" באישור הצאצא. האימות הזה מוודא שהזהות (הנושא) של אישור ההורה זהה לזהות שרשומה כמנפיק באישור הצאצא.
- מזהה המפתח של הנושא (SKID) של אישור ההורה תואם למזהה המפתח של הרשות (AKID) באישור הצאצא. ההתאמה הזו מאשרת שהאישור המשני הונפק על ידי רשות הבסיס הנכונה, ושאפשר לסמוך עליו כי המפתח הציבורי של הבסיס מצוין ב-AKID כדי לאמת את תוקף האישור.
- השם החלופי של הבעלים (SAN) של אישור צאצא לא מפר את השדה
NameConstraintsבאישור ההורה.
העברת הבקשה לקצה העורפי.
אם אימות אישור הלקוח מצליח, הבקשה מועברת לקצה העורפי באמצעות כותרות mTLS בהתאמה אישית.
עם זאת, אם האימות נכשל, הפעולה שתתבצע תלויה בערך של מצב אימות הלקוח:
ALLOW_INVALID_OR_MISSING_CLIENT_CERT: הבקשה מועברת עם כותרות mTLS בהתאמה אישית שמציינות את הסיבה לכשל באימות. במאזני עומסים פנימיים של אפליקציות חוצי-אזורים, במאזני עומסים חיצוניים אזוריים של אפליקציות ובמאזני עומסים פנימיים אזוריים של אפליקציות, בנוסף לכותרות mTLS בהתאמה אישית, אתם יכולים להגדיר שדות אופציונליים של mTLS כדי לבדוק את הסיבה לכשל.
REJECT_INVALIDו-ALLOW_VALIDATION_RELAXATIONS: החיבור נסגר והשגיאות נרשמות ב-Cloud Logging.
כותרות mTLS בהתאמה אישית שמועברות לבק-אנד
בטבלה הבאה מוצגים משתני הכותרת של mTLS בהתאמה אישית שאפשר להעביר לקצה העורפי, גם כשאישור הלקוח עובר את האימות וגם כשהוא נכשל. אם אישור הלקוח נכשל באימות, הבקשות מועברות לקצה העורפי רק כשמצב אימות הלקוח מוגדר ל-ALLOW_INVALID_OR_MISSING_CLIENT_CERT.
אפשר להגדיר את המשתנים האלה גם במפת URL.
| סטטוס אישור הלקוח | מצב אימות לקוח | כותרות מותאמות אישית |
|---|---|---|
שרשרת אישורי הלקוח ארוכה מדי (יותר מ-10 אישורי ביניים כלולים באישור הלקוח). |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
ללקוח או לאישור ביניים יש גודל מפתח RSA לא חוקי. לא מתבצע אימות. מפתחות RSA יכולים להיות בגודל של 2,048 עד 4,096 ביט. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
הלקוח או אישור ביניים משתמשים בעקומה אליפטית שלא נתמכת. לא מתבצע אימות. העקומות האליפטיות התקינות הן P-256 ו-P-384. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
אישור לקוח או אישור ביניים משתמש באלגוריתם שאינו RSA או ECDSA. לא מתבצע אימות. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
ב-PKI שמשמש לאימות יש יותר מ-10 אישורים ביניים שחולקים את אותו נושא ואת אותם פרטי מפתח ציבורי (Subject Public Key Info). לא מתבצע אימות. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
אישור ביניים שסופק לאימות כלל יותר מ-10 מגבלות שם. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
לאישור הלקוח אין
תוסף |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
| הזמן הקצוב פג במהלך הניסיון לאמת את שרשרת האישורים. | ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
client_cert_sha256_fingerprint: <cert hash>
|
הגעת למגבלת העומק או האיטרציה בזמן הניסיון לאמת את שרשרת האישורים. העומק המקסימלי של שרשרת אישורים הוא עשרה, כולל אישורי הבסיס ואישורי הלקוח. מספר החזרות המקסימלי הוא 100 (אישורים שנבדקו כדי לאמת את שרשרת אישורי הלקוח). |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
הגדרתם mTLS בלי להגדיר משאב לא ניתן לבצע אימות, אבל גיבוב האישור מועבר לקצה העורפי. |
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
| אין אישור לקוח. | ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
אישור הלקוח נכשל באימות מול המשאב TrustConfig.
|
ALLOW_INVALID_OR_MISSING_CLIENT_CERT
|
|
| אישור הלקוח עובר את האימות של מאמת האישורים. | לא רלוונטי |
client_cert_error: <empty>
|
ניתוח ערכי משתנים של כותרות מותאמות אישית שמועברים לקצה העורפי
חלק מערכי המשתנים של כותרת mTLS בהתאמה אישית הם ייצוגים של מחרוזות בקידוד Base64 של נתוני אישורים בינאריים של Distinguished Encoding Rules (DER). אפשר לפענח מחרוזות בקידוד Base64 באמצעות כלים או ספריות תוכנה לבחירתכם. הנה כמה דוגמאות:
במערכות macOS ו-Linux אפשר להשתמש בכלי שורת הפקודה
base64, שהוא כלי ליבה שכלול בשתי מערכות ההפעלה. כדי לפענח מחרוזות בקידוד Base64 באמצעות הכליbase64, מעבירים את המחרוזת המקודדת כקלט סטנדרטי לפקודהbase64ומשתמשים בדגל-dכדי לפענח את המחרוזת, באופן הבא:echo BASE_64_ENCODED_STRING | base64 -d
Python כולל את המודול base64, שבו אפשר להשתמש כדי לפענח מחרוזות בקידוד Base64 באופן הבא:
import base64 encoded_string=BASE_64_ENCODED_STRING decoded_string=base64.b64decode(encoded_string).decode() print(decoded_string) # Note that a newline character (\n) is added to the end of the string.
טיפול בשגיאות ורישום ביומן
במאזני עומסים של אפליקציות יש יכולות רישום מפורטות ביומן, שמאפשרות לעקוב אחרי אימות אישורי הלקוח, לזהות בעיות פוטנציאליות ולפתור בעיות בחיבור. בקטע הזה מפורטים סוגי השגיאות השונים שיכולים להתרחש במהלך אימות mTLS, ואיך הם מתועדים ביומן.
שגיאות שנרשמו ביומן במצבים REJECT_INVALID ו-ALLOW_VALIDATION_RELAXATIONS
אם אימות אישור הלקוח נכשל, ומצב אימות הלקוח מוגדר ל-REJECT_INVALID או ל-ALLOW_VALIDATION_RELAXATIONS, החיבור מסתיים והשגיאות נרשמות ב-Cloud Logging. השגיאות האלה מתוארות בטבלה הבאה.
| סטטוס אישור הלקוח | שגיאה שתועדה ביומן |
|---|---|
| שרשרת אישורי הלקוח ארוכה מדי (יותר מ-10 אישורי ביניים כלולים באישור הלקוח). |
client_cert_chain_exceeded_limit
|
לאישור לקוח או לאישור ביניים יש גודל מפתח RSA לא חוקי. לא מתבצע אימות. מפתחות RSA יכולים להיות בגודל של 2,048 עד 4,096 ביט. |
client_cert_invalid_rsa_key_size
|
הלקוח או אישור ביניים משתמשים בעקומה אליפטית שלא נתמכת. לא מתבצע אימות. העקומות התקינות הן P-256 ו-P-384. |
client_cert_unsupported_elliptic_curve_key
|
הלקוח או אישור ביניים משתמשים באלגוריתם שאינו RSA או ECDSA. לא מתבצע אימות. |
client_cert_unsupported_key_algorithm
|
ב-PKI שמשמש לאימות יש יותר מ-10 אישורים ביניים שחולקים את אותם פרטי מפתח ציבורי (Subject Public Key Info) ונושא. לא מתבצע אימות. |
client_cert_pki_too_large
|
אישור ביניים שסופק לאימות כלל יותר מ-10 מגבלות שם. |
|
לאישור הלקוח אין תוסף
|
|
| הזמן הקצוב פג במהלך הניסיון לאמת את שרשרת האישורים. |
client_cert_validation_timed_out
|
הגעת למגבלת העומק או האיטרציה בזמן הניסיון לאמת את שרשרת האישורים. העומק המקסימלי של שרשרת אישורים הוא עשרה, כולל אישורי הבסיס ואישורי הלקוח. המספר המקסימלי של איטרציות הוא 100 (אישורים שנבדקו כדי לאמת את שרשרת אישורי הלקוח). |
client_cert_validation_search_limit_exceeded
|
הגדרתם mTLS בלי להגדיר משאב TrustConfig.
|
client_cert_validation_not_performed
|
| הלקוח לא סיפק את האישור המבוקש במהלך לחיצת היד. |
client_cert_not_provided
|
אישור הלקוח נכשל באימות עם המשאב TrustConfig.
|
client_cert_validation_failed
|
שגיאות שנרשמו ביומן לגבי חיבורים שנסגרו
כשמגדירים את מצב אימות הלקוח, שגיאות מסוימות גורמות לסגירת החיבורים ומתועדות ב-Cloud Logging. השגיאות האלה מתוארות בטבלה הבאה.
| סטטוס אישור הלקוח | בקשה | שגיאה שתועדה ביומן |
|---|---|---|
| אישור הלקוח לא תואם לחתימה במהלך לחיצת היד. | סיום לחיצת היד של SSL | ללא |
| השירות לא יכול לבצע אימות של שרשרת האישורים. | סיום החיבור |
client_cert_validation_unavailable
|
| שגיאה פנימית באימות שרשרת האישורים. | סיום החיבור |
client_cert_validation_internal_error
|
לא נמצאה התאמה ל-TrustConfig.
|
סיום החיבור |
client_cert_trust_config_not_found
|
| המטען הייעודי (payload) של אישור הלקוח (כולל אישורי ביניים) גדול מדי (יותר מ-16KB). | סיום החיבור |
client_cert_exceeded_size_limit
|
אם הרישום ביומן מופעל בשירות לקצה העורפי, אתם יכולים להריץ שאילתה כדי להציג את היומנים של אימות אישור הלקוח ב-mTLS.
מגבלות
מאזן העומסים לא מבצע בדיקות ביטול של אישורי לקוח.
במאזני עומסים של אפליקציות אפשר להעלות הגדרת אמינות עם מאגר אישורים אחד, שמכיל לכל היותר: 200 ישויות עוגן אמינות ואישורי ביניים (מספר אישורי הביניים מוגבל ל-100) ו-500 אישורים שנוספים לרשימת ההיתרים. לכל אישורי הביניים לא יכולים להיות יותר משלושה אישורים שחולקים את אותו נושא ואת אותם פרטי מפתח ציבורי (Subject Public Key Info). מידע נוסף זמין בקטע מכסות ומגבלות.
העומק המקסימלי של שרשרת אישורים הוא עשרה, כולל אישורי הבסיס והלקוח. המספר המקסימלי של פעמים שאפשר להעריך אישורים זמניים כשמנסים לבנות את שרשרת האמון הוא 100. מידע נוסף זמין במאמר מכסות ומגבלות.
המפתחות של האישורים שהועלו והועברו מהלקוח מוגבלים לאלה:
- מפתחות RSA יכולים להיות בגודל של 2,048 עד 4,096 ביט. מידע נוסף זמין במאמר מכסות ומגבלות.
- מפתחות ECDSA יכולים להשתמש בעקומות P-256 או P-384.
שרשרת האישורים הקבילה שמתקבלת מהלקוח מוגבלת ל-16KB ול-10 אישורים. מידע נוסף זמין במאמר מכסות ומגבלות.
אישורי בסיס שמשמשים לאימות לא יכולים להכיל יותר מ-10 מגבלות שם. מידע נוסף זמין במאמר מכסות ומגבלות.
ממשקי הקצה של Google (GFE) בשכבה 1 אוכפים זמן קצוב לתפוגה של 10 שניות, שלא ניתן להגדרה, להצגת האישור של הלקוח במהלך לחיצת היד בפרוטוקול TLS. בזמן עומס שיא, יכול להיות שזמן הקצוב לתפוגה יהיה קצר יותר. הלקוחות צריכים להשלים את הצגת האישור בפרק הזמן הזה כדי ליצור חיבור mTLS תקין.