עדכון אחרון: | הצגת כל התיעוד
כאשר אישור אינו בטוח עוד לשימוש, יש לשלול אותו. זה יכול לקרות ממגוון סיבות שונות. למשל, יכול להיות ששיתפת בטעות את המפתח הפרטי באתר ציבורי, או שאולי האקרים העתיקו את המפתח הפרטי מהשרתים שלך או השתלטו באופן זמני על השרתים שלך או על הגדרות ה־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 שיש לך הרשאה לשלול את האישור. יש שלוש דרכים לעשות זאת: מהחשבון שהנפיק את האישור באמצעות חשבון מאומת אחר או באמצעות המפתח הפרטי של האישור.
ציון קוד סיבה
בעת שלילת רישיון, מנויי Let’s Encrypt אמורים לבחור בקוד סיבה כדלהלן:
- לא סופקה סיבה או
unspecified
(RFC 5280 CRLReason #0)- כאשר הקודים של הסיבה לא חלים על בקשת השלילה, המנוי לא חייב לציין קוד סיבה למעט „unspecified” (לא צוין).
keyCompromise
(RFC 5280 CRLReason #1)- מנוי האישור חייב לבחור בסיבת השלילה „keyCompromise” (מפתח הותקף) כשעולה איזשהו חשש שהמפתח הפרטי של האישור שלהם הותקף, למשל: לגוף לא מורשה הוענקה גישה למפתח הפרטי של האישור שלו.
- אם בקשת השלילה חתומה באמצעות המפתח הפרטי של האישור, במקום במפתח האישור של חשבון המנוי, Let’s Encrypt עלולים להתעלם מסיבת השלילה שבבקשה ולהגדיר את הסיבה ל־„keyCompromise”.
superseded
(RFC 5280 CRLReason #4)- מנוי האישור אמור לבחור בסיבת השלילה „superseded” (הוחלף) בעת בקשת אישור חדש להחלפת האישור הקיים שלו.
cessationOfOperation
(RFC 5280 CRLReason #5)- מנוי האישור חייב לבחור בסיבת השלילה „cessationOfOperation” (הפסקת פעילות) עם אובדן הבעלות על שמות התחום שבאישור או שברצונו להפסיק להשתמש באישור עקב סגירת האתר שלו.
- אם בקשת השלילה היא מחשבון מנוי שלא הזמין את האישור הנדון אך הוכיח שליטה על כל המזהים שבאישור, Let’s Encrypt עלולים להתעלם מסיבת השלילה בבקשה ולהגדיר את הסיבה בתור „cessationOfOperation”.
בקשות שלילה שמציינות קוד סיבה שאינו חלק מאלו שמפורטים להלן תידחנה.
מהחשבון שהנפיק את האישור
אם הנפקת את האישור במקור ועדיין יש לך שליטה על החשבון בו השתמשת כדי להנפיק אותו, יש לך אפשרות לשלול אותו באמצעות פרטי הגישה לחשבון שלך. Certbot ינסה לעשות זאת כברירת מחדל. דוגמה:
certbot revoke --cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.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
באמצעות המפתח הפרטי של האישור
אם לא הנפקת את האישור במקור אך יש לך עותק של המפתח הפרטי המתאים, באפשרותך לשלול על ידי שימוש במפתח הפרטי הזה כדי לחתום על בקשת השלילה. למשל, אם הבחנת שמפתח ציבורי הופץ לקהל הרחב בטעות, ניתן להשתמש בשיטה הזאת כדי לשלול אישורים שהשתמשו במפתח הפרטי הזה, אפילו אם לא הנפקת את האישורים האלו במקור.
כדי להשתמש בשיטה הזאת, יהיה עליך להעתיק את המפתח הפרטי בתצורת PEM תחילה.
ואז, אם עוד אין לך אותו, יש להוריד את האישור שמיועד לשלילה. מערכת Let’s Encrypt מתעדת את כל האישורים אל יומני שקיפות אישורים, כדי לאפשר לך למצוא ולהוריד אישורים מעוקבי אישורים כגון crt.sh. חיפוש שדה SubjectPublicKeyInfo
(SPKI) תואם יאתר את כל האישורים שמשתמשים במפתח הפרטי. כדי לחלץ את גיבוב ה־SPKI ממפתח פרטי:
openssl pkey -outform DER -in /PATH/TO/privkey.pem -pubout | openssl sha256
לאחר שהמפתח הפרטי והאישור בידיך, אפשר לשלול את האישור כך:
certbot revoke --cert-path /PATH/TO/cert.pem --key-path /PATH/TO/privkey.pem --reason keyCompromise