תעודת SSL
Certbot לאחסון שלא נותן להריץ certbot. הקלידו את הדומיינים, שימו קובץ קטן אחד באתר, וקחו הביתה את התעודה, המפתח וה-CA bundle.
הדפדפן מדבר ישירות עם Let’s Encrypt; שום דבר לא עובר דרך האתר הזה. המפתח הפרטי נוצר בלשונית הזו ולא יוצא ממנה.
- 1דומיינים
- 2הוכחה
- 3תעודה
אחד בכל שורה. עד 100 שמות בתעודה אחת. wildcard כמו *.example.com צריך הוכחה דרך DNS.
קובץ דורש שהאתר כבר יענה בפורט 80. רשומת DNS מתאימה ל-wildcard ולאתרים שעוד לא עלו.
RSA עובד עם כל לוח בקרה. ECDSA קטן ומהיר יותר.
Staging היא חזרה גנרלית: אותם צעדים, תעודה מזויפת שאף אחד לא סומך עליה, מגבלות גבוהות בהרבה.
שימו כל קובץ באתר כך שייפתח בכתובת שמופיעה: קובץ ששמו כמו הטוקן הארוך, בלי סיומת, ובתוכו שורת טקסט אחת. ואז לחצו על אימות.
הוסיפו רשומת TXT לכל שם למטה. חלק מלוחות ה-DNS מוסיפים את הדומיין בעצמם; אז השם הוא רק _acme-challenge (או _acme-challenge.www).
חלצו אותו בתיקיית השורש של האתר: תיקיות .well-known/acme-challenge כבר בפנים. ב-cPanel, העלו את ה-zip ב-File Manager ולחצו Extract.
יש לכם טרמינל בשרת?
הריצו את זה בתיקיית השורש במקום להעלות:
תעודה
הריני לאשר כי השמות הבאים שייכים למי שמחזיק במפתח:
שמרו את המפתח הפרטי עכשיו. הוא נוצר בלשונית הזו ולא קיים בשום מקום אחר: לא בשרת שלי ולא ב-Let’s Encrypt. תסגרו את הלשונית והוא איננו.
certificate.crtprivate.keyca_bundle.crtfullchain.pemל-Nginx ול-Apache 2.4: קובץ אחד במקום CRT + CABUNDLE.
מייל תזכורת לא יגיע: Let’s Encrypt הפסיקו לשלוח אותם. שימו תזכורת ביומן לעוד כחודשיים וחזרו.
- חייב להיפתח בכתובת
- http://
- שם הקובץ
- תוכן
- שם
- סוג
TXT- ערך
איך משתמשים
- הקלידו את הדומיינים שהתעודה צריכה לכסות, אחד בכל שורה. אם נכנסים לאתר גם דרך
www., הוסיפו גם אותו. - בחרו איך להוכיח שהדומיינים שלכם: העלאת קובץ (האתר כבר צריך לענות בפורט 80) או הוספת רשומת DNS (נדרש ל-wildcard כמו
*.example.com). - לחצו על קבלת האתגר. לקבצים, הורידו את ה-zip וחלצו אותו בתיקיית השורש של האתר (
public_html,www,htdocs), או הורידו כל קובץ אל.well-known/acme-challenge/. ל-DNS, הוסיפו כל רשומת TXT. - פתחו כל קישור ובדקו שמופיעה בו שורת הטקסט, ואז לחצו על אימות. Let’s Encrypt מוריד את הקבצים בעצמו.
- הורידו את התעודה, המפתח הפרטי וה-CA bundle והדביקו אותם בלוח הבקרה של האחסון. שמרו את המפתח לפני שאתם סוגרים את הלשונית.
מה זה עושה
זו אותה שיחת ACME ש-certbot מנהל עם Let’s Encrypt, כתובה כלקוח קטן שרץ בעמוד הזה. ה-API של Let’s Encrypt מקבל בקשות מדפדפנים, אז העמוד מדבר איתו ישירות: יוצר מפתח חשבון, מזמין תעודה, מראה לכם איזו הוכחה Let’s Encrypt מבקש, מבקש ממנו לבדוק, וכשהבדיקה עוברת חותם על בקשת התעודה. שירותי «SSL חינמי» בתשלום כמו PunchSalad עושים את אותם צעדים, והתעודה היא אותה תעודה של Let’s Encrypt.
מה הולך לאן, בדיוק. Let’s Encrypt מקבל את שמות הדומיינים, המפתח הציבורי והבקשה החתומה, בדיוק מה שהיה מקבל מ-certbot. המפתח הפרטי נוצר בעזרת Web Crypto API של הדפדפן ולא נשלח לשום מקום; פתחו את לשונית Network ותראו רק בקשות אל acme-v02.api.letsencrypt.org. הזמנה שלא הסתיימה נשמרת ב-sessionStorage של הלשונית, כדי שרענון באמצע העלאת הקבצים לא יאבד אותה; סגירת הלשונית מוחקת אותה. בדיקת DNS היא הבקשה הנוספת היחידה: היא שואלת את Google Public DNS (dns.google) על רשומת ה-TXT.
מגבלות, בכנות. תעודות של Let’s Encrypt תקפות ל-90 יום (והתקופה תתקצר בשנים הקרובות), ושום דבר כאן לא מחדש אותן. שימו תזכורת ביומן לבערך היום ה-60 וחזרו, או, אם תשיגו גישה לטרמינל, תנו ל-certbot לעשות את זה: המדריך ל-SSL מכסה את שתי הדרכים, ואם לאחסון יש כפתור AutoSSL, פשוט לחצו עליו. בדיקות שנכשלו מוגבלות לחמש בשעה לכל שם, אז תעשו חזרה גנרלית ב-Staging: הכול אותו דבר, עם תעודה מזויפת ומגבלות נדיבות.
הקבצים נקראים בשמות שלוחות הבקרה מבקשים. ב-cPanel, תחת SSL/TLS → Manage SSL sites, certificate.crt נכנס ל-CRT, private.key ל-KEY ו-ca_bundle.crt ל-CABUNDLE. Nginx רוצה ssl_certificate fullchain.pem; ו-ssl_certificate_key private.key;. Apache 2.4 מקבל SSLCertificateFile fullchain.pem ו-SSLCertificateKeyFile private.key.
שאלות
למה הבדיקה נכשלה?
קראו את ההודעה מתחת לשם, היא מצטטת מה Let’s Encrypt ראה. 404 אומר שהקובץ לא נמצא איפה שחיפש: תיקייה לא נכונה (צריך את תיקיית השורש של הדומיין הזה בדיוק), או שהקובץ קיבל בדרך סיומת .txt. 403 הוא בדרך כלל תוסף אבטחה או כלל ב-.htaccess שחוסם תיקיות עם נקודה. Timeout אומר שפורט 80 סגור. וקלאסיקה: אם לדומיין יש רשומת AAAA (IPv6) שמצביעה על שרת ישן, Let’s Encrypt בודק אותה קודם. הפניות ל-https לא מפריעות, הוא עוקב אחריהן.
אפשר לקבל תעודת wildcard?
כן, רק בשיטת ה-DNS: קובץ מוכיח שרת אחד, רשומת DNS מוכיחה את כל האזור. אם רוצים גם את הדומיין עצמו, הוסיפו גם example.com וגם *.example.com. שניהם מקבלים רשומת TXT על אותו שם, _acme-challenge.example.com, כך שלשם הזה יהיו שני ערכים. זה צפוי; הוסיפו את שניהם.
RSA או ECDSA?
RSA 2048 היא ברירת המחדל הבטוחה: כל לוח בקרה, שרת ולקוח ישן מקבלים אותה. מפתחות ECDSA P-256 קטנים יותר ולחיצת היד מהירה יותר, וכמעט כל מה שנבנה בעשור האחרון תומך בהם. אם לוח הבקרה דוחה את המפתח, הנפיקו שוב עם RSA.
התיקייה נעלמה אחרי שחילצתי את ה-zip במק.
היא שם, רק מוסתרת: macOS מסתיר שמות שמתחילים בנקודה, כמו .well-known. לחצו Cmd Shift . ב-Finder כדי לראות אותה, או העלו את ה-zip עצמו וחלצו אותו בשרת (ב-File Manager של cPanel יש כפתור Extract).
האם תעודת SSL חינמית של Let’s Encrypt טובה כמו תעודה בתשלום?
מבחינת הצפנה, כן. המנעול זהה, וגם חיבור ה-TLS שמאחוריו. Let’s Encrypt מנפיקה רק תעודות עם אימות דומיין (DV): הן מוכיחות שהדומיין בשליטתכם ותו לא. תעודות OV ו-EV בתשלום בודקות גם את החברה, אבל הדפדפנים הפסיקו להציג את שם החברה בשורת הכתובת לפני שנים, אז המבקרים לא רואים הבדל. מה שהכסף קונה הוא בעיקר פחות חידושים, תמיכה ואחריות שכנראה לעולם לא תממשו.