תיעוד 81
הבאת CA משלך עבור mTLS
עמוד זה מסביר איך לנהל אישורי לקוח שלא הונפקו על ידי Cloudflare CA. לסקירה רחבה יותר, עיין במסלול הלמידה של mTLS ב-Cloudflare.
Bring your own CA (BYOCA) שימושי במיוחד אם כבר יש לך יישום של mTLS ואישורי לקוח כבר מותקנים במכשירים.
#זמינות
- התכונה זמינה רק בחשבונות Enterprise.
- כל חשבון Enterprise יכול להעלות עד חמישה CA. המכסה הזו לא חלה על CA שהועלו דרך Cloudflare Access.
- מכסת אישורי ה-CA משותפת ל-API Shield, Workers mTLS ו-Cloudflare Gateway.
- כדי להגדיל את המכסה, פנה לצוות החשבון שלך.
הערה
אם חורגים ממכסת אישורי ה-CA, ה-API מחזיר שגיאה 1489 עם ההודעה "Hit maximum CA cert allocation." פנה לצוות החשבון שלך כדי לבקש הגדלת מכסה.
Cloudflare Access משתמש במכסה נפרדת
CA שהועלו דרך Cloudflare Access משתמשים במכסה נפרדת שלא נספרת במגבלת חמשת ה-CA. אם מופיעה שגיאה 12130 ("maximum number of certificates has been reached") ב-Access, זה קשור למכסת האישורים של Access, לא למכסת ה-CA של BYOCA.
#מתי להשתמש ב-BYOCA
BYOCA מתאים אם:
- כבר יש לך CA פנימי ואישורי לקוח מותקנים במכשירים שלך.
- אתה מנפיק אישורים בנפח גבוה או בקצב תחלופה גבוה, לדוגמה אישור אחד לכל מכונה וירטואלית חולפת, קונטיינר או מכשיר. עם BYOCA, Cloudflare שומר רק את אישור ה-CA שלך, לא את האישורים הבודדים שהונפקו, ולכן אין מכסה לכל אישור.
- אתה רוצה שליטה מלאה בתקופות התוקף של האישורים, בסוגי המפתחות ובביטול, דרך כלי ה-CA שלך.
אם יש לך רק קבוצה קטנה ויציבה של מכשירים או שירותים לאימות, ה-CA המנוהל על ידי Cloudflare פשוט יותר להגדרה.
#דרישות לאישור CA
כשאתה מעלה את ה-CA, Cloudflare מאמת את האישור לפי דרישות מסוימות.
- אישור ה-CA יכול להיות מרשות אישורים מהימנה באופן ציבורי או בחתימה עצמית.
- ב-
Basic Constraintsשל האישור, המאפייןCAחייב להיות מוגדר ל-TRUE. - האישור חייב להשתמש באחד מאלגוריתמי החתימה המפורטים להלן:
אלגוריתמי חתימה מותרים
x509.SHA1WithRSA
x509.SHA256WithRSA
x509.SHA384WithRSA
x509.SHA512WithRSA
x509.ECDSAWithSHA1
x509.ECDSAWithSHA256
x509.ECDSAWithSHA384
x509.ECDSAWithSHA512
הערה
העלאת המפתח הפרטי של ה-CA נדרשת רק אם ברצונך להשתמש בדף החסימה של Zero Trust. כדי להעלות CA משלך עם המפתח הפרטי, השתמש בנקודת הקצה Upload mTLS certificate.
#הגדרת mTLS עם ה-CA שלך
אם אישורי הלקוח שלך הונפקו על ידי CA ביניים, העלה את שרשרת ה-CA המלאה (ה-Intermediate CA ואחריו ה-Root CA) בקובץ PEM אחד. עיין בהעלה את אישור ה-CA, לא אישור עלה.
לוח הבקרה
- בלוח הבקרה של Cloudflare, עבור אל הדף Client Certificates. עבור אל Client Certificates ↗
- בחר Add Certificate.
- ברשימה הנפתחת Certificate Authority, בחר Bring your own CA.
- העלה את קובץ אישור ה-CA שלך (בקידוד PEM) והזן שם ל-CA.
- בחר Continue.
- בדף Associate Hostnames, הזן את ה-hostname שצריך להשתמש ב-CA הזה לאימות mTLS ובחר Add עבור כל אחד. אפשר גם לדלג על השלב הזה ולשייך hostname מאוחר יותר.
- בחר Save כדי לאשר.
API
- השתמש בנקודת הקצה Upload mTLS certificate כדי להעלות את אישור השורש של ה-CA.
caבוליאני, חובה- הגדר ל-
trueכדי לציין שהאישור הוא אישור CA.
- הגדר ל-
certificatesמחרוזת, חובה- הכנס את התוכן מקובץ ה-
.pemהמשויך לאישור ה-CA, בפורמט של מחרוזת אחת שבה\nמחליף את מעברי השורה.
- הכנס את התוכן מקובץ ה-
nameמחרוזת, אופציונלי- ציין שם ייחודי לאישור ה-CA שלך.
private_keyמחרוזת, אופציונלי- הכנס את התוכן מקובץ ה-
.pemהמשויך למפתח הפרטי של האישור, בפורמט של מחרוזת אחת שבה\nמחליף את מעברי השורה.
- הכנס את התוכן מקובץ ה-
- שמור את מזהה האישור (
id) שמוחזר בתשובת ה-API. - השתמש בנקודת הקצה Replace Hostname Associations כדי להפעיל mTLS בכל hostname שצריך להשתמש ב-CA לאימות mTLS. השתמש בפרמטרים הבאים:
hostnamesמערך, חובהרשום את ה-hostname שישתמשו ב-CA לאימות אישור לקוח.
זהירות
שליחת מערך ריק תסיר את כל שיוכי ה-hostname.
mtls_certificate_idמחרוזת, חובהציין את מזהה האישור שהתקבל בשלב הקודם.
זהירות
אם לא מסופק
mtls_certificate_id, הפעולה תבוצע מול ה-CA המנוהל על ידי Cloudflare.
- (אופציונלי) בצע בקשת GET כדי לאשר את שיוכי ה-hostname של ה-CA.
אחרי העלאת ה-CA ושיוך hostname, צור כלל מותאם אישית כדי לאכוף אימות של אישור לקוח. אפשר לעשות זאת דרך לוח הבקרה או דרך API.
"expression": "(http.host in {\"<HOSTNAME_1>\" \"<HOSTNAME_2>\"} and not cf.tls_client_auth.cert_verified)",
"action": "block"הערה
כשמשתמשים ברשומות CNAME, אכוף mTLS על ה-hostname הספציפי שבו צריך לבדוק אותו. לא מספיק שהוא מוגדר על יעד ה-CNAME.
#מספר CA עבור hostname אחד
יכולים להיות כמה CA (מנוהלים על ידי Cloudflare או BYOCA) המשויכים לאותו hostname. עבור אישורי BYOCA, האישור שנפרס לאחרונה יקבל עדיפות.
אם ברצונך להסיר את השיוך מהאישור המנוהל על ידי Cloudflare ולהשתמש רק באישור או באישורי ה-BYOCA שלך:
לוח הבקרה
- בלוח הבקרה של Cloudflare, עבור אל הדף Client Certificates. עבור אל Client Certificates ↗
- במקטע Hosts תחת Cloudflare-issued Client Certificates, בחר Edit.
- בחר את הסימן X ליד ה-hostname שברצונך להסיר.
- בחר Save כדי לאשר.
API
- הצג את שיוכי ה-hostname בלי הפרמטר
mtls_certificate_id.
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
SSL and Certificates WriteSSL and Certificates Read
List Hostname Associations (bash)
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"- העתק את מערך
hostnamesשה-API החזיר ועדכן אותו, תוך הסרת ה-hostname שכבר לא צריך להשתמש ב-CA המנוהל על ידי Cloudflare. - השתמש בנקודת הקצה Replace Hostname Associations בלי הפרמטר
mtls_certificate_idכדי לבצע את הפעולה מול ה-CA המנוהל על ידי Cloudflare. עבורhostnamesהשתמש ברשימה מהשלב הקודם.
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
SSL and Certificates Write
Replace Hostname Associations (bash)
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"hostnames": [
"<UPDATED_HOSTNAME_ASSOCIATIONS>"
]
}'#מחיקת CA שהועלה
אם ברצונך להסיר CA שהעלית בעבר, קודם יש להסיר כל שיוך hostname שיש לו.
לוח הבקרה
- בלוח הבקרה של Cloudflare, עבור אל הדף Client Certificates. עבור אל Client Certificates ↗
- בחר בלשונית BYOCA.
- מצא את ה-CA שברצונך למחוק ובחר בשלוש הנקודות שלידו.
- הסר קודם את כל ה-hostname המשויכים, אם יש כאלה.
- בחר באפשרות המחיקה ואשר.
API
- שלח בקשה אל נקודת הקצה Replace Hostname Associations, עם מערך ריק עבור
hostnamesועם מזהה אישור ה-CA שלך ב-mtls_certificate_id:
"hostnames": [],
"mtls_certificate_id": "<CERTIFICATE_ID>"- השתמש בנקודת הקצה Delete mTLS certificate כדי למחוק את האישור.
#הצגת שיוכי hostname של CA
לוח הבקרה
- בלוח הבקרה של Cloudflare, עבור אל הדף Client Certificates. עבור אל Client Certificates ↗
- בחר בלשונית BYOCA.
- מצא את ה-CA שברצונך לבדוק ובחר בשלוש הנקודות שלידו.
- בחר Edit hostnames. החלונית Certificate Details מציגה את ה-hostname המשויכים.
API
השתמש בנקודת הקצה List Hostname Associations עם פרמטר השאילתה mtls_certificate_id מוגדר למזהה האישור של ה-CA שהועלה.
הרשאות נדרשות לאסימון API
נדרשת לפחות אחת מהרשאות האסימון הבאות:
SSL and Certificates WriteSSL and Certificates Read
List Hostname Associations (bash)
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations?mtls_certificate_id=ID_FROM_STEP_2" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"