ISRG celebrates 10 years of helping build a brighter Internet →

הרשאת רשות אישורים (CAA)

עדכון אחרון: | הצגת כל התיעוד

CAA היא סוג של רשומת DNS שמאפשרת לבעלי האתרים לציין לאילו רשויות אישורים (CAs) מותר להנפיק אישורים שמכילים את שם התחום שלהם. תקן זה גובש ב־2013 לכדי RFC 6844 כדי לאפשר ל־CA „להפחית את הסיכון בשימוש לא ראוי באישור ללא כוונה.” כבררת מחדל, כל רשות אישורים ציבורית מורשית להנפיק אישורים לכל שם תחום ב־DNS הציבורי כל עוד הם מתקפים שליטה על שם התחום. משמעות הדבר היא שיש תקלה בתהליכי התיקוף של כל אחת מבין רשויות אישורים רבות, כל שם תחום עשוי להיות מושפע. ספקי CAA מספקים דרך לבעלי שמות תחום להפחית את הסיכון הזה.

שימוש ב־CAA

אם CAA לא מעניין אותך, בדרך כלל אין צורך לנקוט בשום פעולה (למעט לצפות בשגיאות ה־CAA שלהלן). אם מעניין אותך להשתמש ב־CAA כדי להגביל אילו רשויות אישורים מורשות להנפיק אישורים לשם התחום שלך עליך להשתמש בספק DNS שתומך בהגדרת רשומות CAA. בעמוד של SSLMate על CAA ניתן למצוא רשימה של ספקים כאלה. אם הספק שלך מופיע, ניתן להשתמש במחולל רשומות ה־CAA של SSLMate כדי לייצר ערכה של רשומות CAA שמפרטות את רשויות האישורים שברצונך לאשר.

שם התחום המזוהה עם Let’s Encrypt לטובת CAA הוא letsencrypt.org. כל זאת מתועד באופן רשמי בהצהרת מדיניות האישור (CPS), סעיף 4.2.1.

איפה לשים את הרשומה

ניתן להגדיר רשומות CAA בשם התחום העיקרי שלך או בכל עומק שהוא כתת־שם תחום. למשל, אם היה לך www.community.example.com, אפשר להגדיר רשומות CAA עבור השם המלא, או עבור community.example.com, או עבור example.com. רשויות אישורים תבדוקנה כל גרסה, משמאל לימין ותעצורנה ברגע שתיתקלנה ברשומת CAA. כך למשל, רשומת CAA תחת community.example.com תקדים את זאת שתחת example.com. רוב האנשים שמוסיפים רשומות CAA ירצו להוסיף אותן לשם התחום שרשמו (example.com) כדי שתחולנה על כל תת־שמות התחום. כדאי גם לשים לב שרשומות CAA לתת־שמות תחום קודמות לשמות התחום שמעליהן ללא תלות אם הן מתירניות יותר או מגבילות יותר. לכן תת־שם מתחום יכול לרופף מגבלה שהוצבה על ידי שם תחום עליון.

אימות CAA עוקב אחר רשומות CNAME, כמו כל שאר בקשות ה־DNS. אם www.community.example.com הוא CNAME אל web1.example.net, רשות האישורים קודם כל תבקש רשומות CAA עבור www.community.example.com, ואז כשהיא תיתקל ברשומת CNAME עבור שם התחום הזה במקום רשומות CAA, היא תבקש רשומות CAA עבור web1.example.net במקום. נא לשים לב שאם לשם תחום יש רשומת CNAME אסור שתהיינה לו רשומות אחרות כלל בהתאם לתקינת ה־DNS.

ה־RFC (תקינה) של CAA מציינת התנהגות נוספת בשם „טיפוס על עץ” (tree-climbing) שדורשת מרשויות האישורים גם לבדוק את שמות התחום העליונים של תוצאת פתרון ה־CNAME. התנהגות נוספת זו הוסרה בהמשך על ידי תיקון, לכן Let’s Encrypt ורשויות אישורים נוספות אינן מממשות אותה.

שגיאות CAA

מאחר שרשומות CAA נבדקות על ידי Let’s Encrypt לפני כל אישור שאנו מנפיקים, לפעמים אנחנו מקבלים שגיאות עבור שמות תחום שלא הגדירו כלל רשומות CAA. כאשר מתקבלת שגיאה, אין דרך לדעת אם יש לנו הרשאה להנפיק עבור שם התחום המושפע, מאחר שעשויות להיות רשומות CAA קיימות שאוסרות על הנפקה אך אינן גלויות עקב השגיאה.

אם מופיעות בפניך שגיאות שקשורות ב־CAA, כדאי לנסות עוד כמה פעמים מול סביבת ההכנה להקמה שלנו כדי לראות אם אלו שגיאות זמניות או קבועות. אם הן קבועות, יהיה עליך לבקש תמיכה מספק ה־DNS שלך או להחליף ספק. במקרה של ספק בנוגע לזהות ספק ה־DNS שלך, ניתן לשאול את ספק האחסון שלך.

חלק מספקי ה־DNS שאינם מכירים את CAA מגיבים תחילה לדיווחי תקלות עם התשובה „אנחנו לא תומכים ברשומות CAA”. ספק ה־DNS שלך לא חייב לציין במפורש תמיכה ברשומות CAA, הוא צריך רק להגיב עם NOERROR לסוגי תשאולים שאינם ידועים לו (כולל CAA). החזרת קודים תפעוליים אחרים, כולל NOTIMP, לסוגי תשאולים (qtypes) בלתי ידועים היא הפרה של RFC 1035 וצריך לתקן אותה.

SERVFAIL

אחת מהשגיאות הכי נפוצות בה נתקלים אנשים היא SERVFAIL. לרוב היא מציינת כשל בתיקוף DNSSEC. אם קיבלת שגיאת SERVFAIL, הצעד הראשון שלך אמור להיות שימוש במנפה שגיאות DNSSEC כגון dnsviz.net. אם זה לא עובד, יכול להיות ששרתי השמות שלך מייצרים חתימות שגויות רק כאשר התגובה ריקה. ותגובות CAA הן בדרך כלל ריקות. למשל, ב־PowerDNS הייתה את התקלה הזאת מגרסה 4.0.3 ומטה.

אם DNSSEC אינו מופעל אצלך אבל עדיין מתקבלות שגיאות SERVFAIL, הסיבה השנייה הנפוצה ביותר היא ששרת השמות בסמכות העליונה החזיר NOTIMP, שהיא הפרה של RFC 1035 כפי שמתואר לעיל, במקום, אמור היה להישלם NOERROR עם תגובה ריקה. אם מדובר במקרה שכזה, כדאי לפתוח קריאת תמיכה לספק ה־DNS שלך.

בסיכומו של דבר, שגיאות SERVFAIL עשויות להיגרם על ידי הפסקות פעילות של שרתי השמות בסמכות העליונה שלך. כדאי לבדוק מה הם שרתי השמות שלך ברשומות ה־NS ולוודא שכל אחד מהשרתים האלו זמינים.

פקיעת זמן מוקצב

לפעמים הזמן המוקצב לשאילתות CAA פג. עשוי להתרחש אם שרת השמות בסמכות העליונה אף פעם לא עונה, אפילו אחרי מספר ניסיונות. בדרך כלל זה יכול לקרות כאשר לשרת השמות שלך יש לפניה חומת אש שאינה מוגדרת כראוי ומשמיטה שאילתות DNS מסוגי שאילתות (qtypes) בלתי ידועים. יש לפתוח קריאת תמיכה מול ספק ה־DNS שלך ולשאול אותם אם יש להם חומת אש שמוגדרת בצורה הזאת.