שלילת אישורים

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

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

בעת שלילת אישור של Let’s Encrypt, פרטים על השלילה הזאת יפורסמו על ידיLet’s Encrypt דרך Online Certificate Status Protocol (פרוטוקול מצב אישור מקוון - OCSP), וחלק מהדפדפנים יבדקו את OCSP כדי לבדוק האם עליהם לתת אמון באישור. נא לשים לב של־OCSP יש כמה תקלות יסודיות, לכן לא כל הדפדפנים יבצעו את הבדיקה הזו. עם זאת, שלילת אישורים בתגובה למפתחות פרטיים שנפגעו היא דרך התנהלות חשובה והיא נדרשת על ידי הסכם המנוי של Let’s Encrypt.

כדי לשלול אישור עם Let’s Encrypt, יהיה עליך להשתמש ב־API של ACME, ככל הנראה דרך לקוח ACME כגון Certbot. יהיה עליך להוכיח ל־Let’s Encrypt שיש לך הרשאה לשלול את האישור. ישנן שלוש דרכים לעשות זאת:

מהחשבון שהנפיק את האישור

אם הנפקת את האישור במקור ועדיין יש לך שליטה על החשבון בו השתמשת כדי להנפיק אותו, יש לך אפשרות לשלול אותו באמצעות פרטי הגישה לחשבון שלך. Certbot ינסה לעשות זאת כבררת מחדל. דוגמה:

certbot revoke --cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.pem

באמצעות המפתח הפרטי של האישור

אם לא הנפקת את האישור במקור אך יש לך עותק של המפתח הפרטי המתאים, באפשרותך לשלול על ידי שימוש במפתח הפרטי הזה כדי לחתום על בקשת השלילה. למשל, אם הבחנת שמפתח ציבורי הופץ לקהל הרחב בטעות, ניתן להשתמש בשיטה הזאת כדי לשלול אישורים שהשתמשו במפתח הפרטי הזה, אפילו אם לא הנפקת את האישורים האלו במקור.

כדי להשתמש בשיטה הזאת, ראשית יהיה עליך להוריד את האישור שמיועד לשלילה. מערכת Let’s Encrypt מתעדת את כל האישורים אל יומני שקיפות אישורים, כדי לאפשר לך למצוא ולהוריד אישורים מעוקבי אישורים כגון crt.sh.

עליך להחזיק בעותק של המפתח הפרטי בתצורת PEM בנוסף על כך. לאחר שיש לך את כל אלו, ניתן לשלול אישור באופן הבא:

certbot revoke --cert-path /PATH/TO/cert.pem --key-path /PATH/TO/key.pem

באמצעות חשבון מורשה אחר

אם מישהו הנפיק אישור לאחר פגיעה במארח או ב־DNS ייתכן שעדיף יהיה לך לשלול את האישור הזה לאחר השבת השליטה לידיך. כדי לשלול את האישור, על מערכת Let’s Encrypt יהיה לוודא שיש לך שליטה על שמות המתחם שבאישור הזה (אחרת אנשים יוכלו לשלול אישורים זה לזה ללא הרשאה)! כדי לתקף את השליטה הזאת, משתמשת מערכת Let’s Encrypt באותן השיטות בהן היא משתמשת כדי לתקף שליטה לצורך הנפקה: ניתן להציב ערך ברשומת TXT ב־DNS או להציב קובץ על שרת HTTP. בדרך כלל, לקוח ACME אמור לטפל בזה עבורך. נא לשים לב שרוב לקוחות ה־ACME משלבים תיקוף והנפקה, לכן הדרך היחידה לבקש תיקופים היא לנסות לבקש הנפקה. לאחר מכן יתאפשר לך לשלול את האישור שהונפק אם אין לך צורך בו, או פשוט להשמיד את המפתח הפרטי. אם ברצונך להימנע מהנפקת אישור לחלוטין, ניתן לכלול שם תחום שאינו קיים בשורת הפקודה שלך, מה שיגרום להנפקה להיכשל אך עדיין לתקף את שאר שמות התחום הקיימים. כדי לעשות זאת, עליך להריץ את הפקודה:

certbot certonly --manual --preferred-challenges=dns -d ${YOUR_DOMAIN} -d nonexistent.${YOUR_DOMAIN}

ולעקוב אחר ההוראות. אם עדיף לך לתקף באמצעות HTTP במקום באמצעות DNS, יש להחליף את הדגלון ‎--preferred-challenges ב־‎--preferred-challenges=http.

לאחר תיקוף שהשליטה בכל שמות התחום באישור שברצונך לשלול בידיך, ניתן להוריד את האישור מ־crt.sh ואז להמשיך לשלול את האישור כאילו הוא הונפק על ידיך:

certbot revoke --cert-path /PATH/TO/downloaded-cert.pem