Easy-RSA אומר שה-PKI חסר? הוא מסתכל במקום אחר
מפתח CA חסר או index.txt חסר בדרך כלל אומר ש-Easy-RSA 3 בחר ספרייה אחרת. בדקו קודם את בורר ה-PKI, את הקדימות ואת טביעת האצבע של המנפיק.
הפקודה נעצרת בגלל ca.crt חסר או index.txt חסר, בעוד ה-CA מנפיק תעודות כבר חודשים. דבר לא השתנה ברשות; הפקודה פשוט הסתכלה במקום אחר. Easy-RSA 3 מפיק ספריית PKI מאפשרות, ממשתנה סביבה, מקובץ vars ומברירת מחדל מובנית, וכל אחד מאלה יכול להצביע הרחק מהרשות של הפריסה. בדקו מי ניצח לפני שאתם יוצרים משהו.
השגיאה נוקבת בשם קובץ, לא בספרייה
ספריית ההתקנה וספריית המנפיק הן שני מקומות שונים. מציאת easyrsa במחשב מוכיחה רק שהכלי מותקן, לא שהוא מצא את הרשות שבה ה-VPN שלכם בוטח.
לכן התקנה מחדש של החבילה או הרצה חוזרת של שלב init מרגישה פרודוקטיבית ולא משנה דבר.
בדקו את הבורר לפני כל דבר אחר
ב-Easy-RSA 3 הבורר הוא EASYRSA_PKI או האפשרות המתאימה --pki-dir. העבירו נתיב מוחלט כגון --pki-dir=/srv/pki/office, והתשובה מפסיקה להיות תלויה במקום שבו עמדתם במקרה. הרגל אחד זה מסיר מחלקה שלמה של תקלה זו, במיוחד עבור סקריפטים שמופעלים מ-cron או מצ'קאאוט CI.
אשרו קודם את הדור, כי ההרגל של Easy-RSA 2 עם קובץ vars בתוספת build-key הוא מודל אחר מזה ש-Easy-RSA 3 מצפה לו. easyrsa --version מדפיס את הדור לפני שהוא עושה דבר אחר, ו-./easyrsa --help מפרט את תתי-הפקודות: יעד build-key פירושו 2.x, ואילו build-client-full פירושו 3.x. העברת נתיב KEY_DIR ישן לקריאת 3.x מפני ששם הספרייה נראה מוכר מייצרת בדיוק את השגיאה הזו.
אם מחרוזת הגרסה ותחביר הפקודה אינם מתיישבים, עצרו וקראו את התיעוד של המהדורה המותקנת.
הקדימות מסבירה קובץ vars שהפסיד
הקדימות המתועדת היא אפשרות בשורת הפקודה, אחר כך הסביבה, אחר כך קובץ vars, אחר כך ברירת מחדל מובנית. לכן ערך נכון ב-vars מפסיד למשתנה סביבה שעבר בירושה, וזו הגרסה השקטה של הכשל הזה. בדקו את המשתנים המיועדים ואת בחירת הקובץ במקום לשפוך את כל הסביבה לכרטיס. ההבדל בין השניים הוא בדרך כלל סוד.
עברו על השרשרת לפי הסדר וציינו איזה מקור סיפק את הנתיב שהפקודה השתמשה בו. ברגע שתדעו זאת, התיקון הוא דגל או export, לא רשות אישורים חדשה.
מדריך התצורה של Easy-RSA מגדיר את הבורר ואת הקדימות, וזו הציטוט שצריך לשים בכרטיס.
אשרו את המנפיק בחומר ציבורי
עם המנפיק הרגיל מבוסס הקבצים, קראו ca.crt והשוו את טביעת האצבע שלו לרשומת המנפיק שאישרתם. שם נושא תואם אינו ראיה לזהות, וגם לא ספרייה בשם production. רק טביעת האצבע קושרת את הקובץ שמצאתם לרשות שנאמר לעמיתיכם לבטוח בה.
בדיקה לקריאה בלבד מספיקה: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.
לאחר מכן קבעו את תפקיד הספרייה. ספריית בקשות שלקוח משתמש בה אינה מסד נתונים של מנפיק, ומפתח חתימה שנשמר במצב לא מקוון אינו צריך להתקיים בכל מארח VPN. חוסר ב-ca.key הוא תכונת תכנון בפריסה הזו, לא רשות להמציא רשות חלופית.
אם המצב באמת אבד
לפעמים הנתיב נכון והמצב באמת לא שם. קובץ index.txt ריק ומונה סידורי שהופעל מחדש נותנים לכם PKI שנראית בריאה ואינה יכולה להוכיח דבר על התעודות שמעולם לא ראתה: חידושים לא יבטלו את הישנות, והמספרים החדשים יתנגשו בהיסטוריה. שחזרו במקום זאת מהגיבוי המאושר של ה-CA, כי אתחול PKI ריק במקום אחר רק מזיז את השגיאה ומשאיר מאחור רשות שנייה ולא קשורה.
כשהנתיב והמנפיק מסכימים, טפלו בכשל הבא לגופו. Permission denied, מפתח חתימה שזקוק לביטוי הסיסמה שלו ורשומת הנפקה חסרה הם שלושה תקלים שונים, ורק אחד מהם עוסק בספרייה שתיקנתם זה עתה.
לעולם אל תסירו הצפנת מפתחות ואל תרחיבו הרשאות ספרייה כדי לטשטש טעות נתיב. את הטעות זול לתקן; את התיקון לא.