עדכון אחרון:
המטרה של Let’s Encrypt ושל פרוטוקול ACME היא לאפשר להקים שרת HTTPS ושהוא ימשוך אוטומטית אישורים מהימנים לדפדפן, ללא התערבות של בן אדם. מטרה זו מושגת על ידי הפעלת סומן ניהול אישורים בשרת המארח.
כדי להבין איך הטכנולוגיה הזו עובדת, הבה נעבור על תהליך הגדרת לקוח ניהול אישורים שתומך ב־Let’s Encrypt עבור https://example.com/
.
לתהליך זה שני שלבים. תחילה, הסוכן מוכיח לרשות האישורים שהשרת הזה שולט בשם התחום. לאחר מכן, הסוכן יכול לבקש, לחדש ולשלול אישורים עבור שם התחום הזה.
תיקוף שם תחום
Let’s Encrypt מזהה את מנהל השרת באמצעות מפתח ציבורי. בפעם הראשונה שתכנית הסוכן יוצרת קשר עם Let’s Encrypt היא מייצרת צמד מפתחות חדש ומוכיחה לרשות האישורים Let’s Encrypt שלשרת יש שליטה בשם תחום אחד או יותר. בדומה לתהליך המסורתי מול רשות אישורים שכרוך ביצירת חשבון והוספת שמות תחום לחשבון הזה.
כדי להניע את התהליך, הסוכן מבקש מרשות האישורים Let’s Encrypt את מה שדרוש לו כדי להוכיח שהוא שולט ב־example.com
. רשות האישורים Let’s Encrypt תסתכל על שם התחום שבבקשה ותנפיק סדרת אתגרים אחת או יותר. אלו דרכים שונות שבהן יכול הסוכן להוכיח שיש לו שליטה על שם התחום. למשל, רשות האישורים יכולה לתת לסוכן לבחור בין:
- להקים רשומת DNS תחת
example.com
, או - להקים משאב HTTP תחת כתובת פנימית (URI) מוכרת
http://example.com/
בנוסף לאתגרים, רשות האישורים Let’s Encrypt מספקת אסימון מוצפן שעל הסוכן לחתום עליו עם המפתח הפרטי שלו כדי להוכיח שיש לו שליטה על צמד המפתחות.
תכנית הסוכן משלימה את אחת מסדרות האתגרים שסופקו. נניח שהוא מצליח להשלים את המשימה השנייה שלעיל: הסוכן יוצר קובץ תחת נתיב מסוים באתר http://example.com
. הסוכן גם חותם על האסימון המוצפן עם המפתח הפרטי שלו. לאחר שהסוכן השלים את הצעדים האלה, הוא מודיע לרשות האישורים שהוא מוכן להשלים את התיקוף.
מכאן, זה תפקידה של רשות האישורים לבדוק שהאתגרים נענו כראוי. רשות האישורים מאמתת את החתימות על האסימון המוצפון ומנסה להוריד את הקובץ מהשרת ולוודא שיש בו את התוכן שאמור להיות בו.
אם החתימה על האסימון המוצפן תקפה והאתגרים הושלמו אז הסוכן שמזוהה באמצעות המפתח הציבורי מורשה לנהל אישורים עבור example.com
. אנו קוראים לצמד המפתחות בהם משתמש הסוכן „צמד מפתחות מורשה” עבור example.com
.
הנפקה ושלילה של אישורים
לאחר שהסוכן נתן הרשאה לצמד מפתחות, בקשה, חידוש ושלילה של אישורים היא פשוטה - עליך פשוט לשלוח הודעות ניהול אישורים ולחתום עליהן עם צמד המפתחות המורשה.
כדי להשיג אישור עבור שם התחום, הסוכן מרכיב בקשת חתימת אישור - Certificate Signing Request (CSR) בתצורת PKCS#10 שמבקשת מרשות האישורים Let’s Encrypt להנפיק אישור עבור example.com
עם מפתח ציבורי מסוים. כרגיל, ה־CSR כולל חתימה במפתח הפרטי שתואם למפתח הציבורי שב־CSR. הסוכן גם חותם על כל ה־CSR עם המפתח המורשה עבור example.com
כדי שרשות האישורים Let’s Encrypt תדע שהוא מורשה.
כאשר רשות האישורים Let’s Encrypt מקבלת את האישור, היא מאמתת את שתי החתימות. אם הכול נראה טוב, היא מנפיקה אישור עבור example.com
עם המפתח הציבורי מתוך בקשת חתימת האישור (CSR) ומחזירה אותו אל הסוכן.
השלילה עובדת באופן דומה. הסוכן חותם על בקשת שלילה עם צמד המפתחות שמורשים עבור example.com
, ורשות האישורים Let’s Encrypt מוודאה שהבקשה מורשית. אם תהליך זה צלח, פרטי השלילה מפורסמים לערוצי השלילה הרגילים (למשל: OCSP), כדי שהגופים הנסמכים כגון דפדפנים יוכלו לדעת שאין עליהם לסמוך על אישורים שנשללו.