node.js - NodeJS 14: שימוש בחבילת אישורי SSL (CA)
כרגע אני מנסה להשתמש בחבילת CA עם NodeJS 14.0. אני משתמש במאמר של Namecheap כמדריך ליישום התכונה הזו. כרגע אני תקוע בכמה דברים:
- לפרמטר
caעבור https.createServer(), אילו פורמטים של קבצים מותר להעביר? - איך אני בודק שחבילת CA אכן נמצאת בשימוש?
תשובה #1
באשר לפרמטר ca עבור https.createServer(), באילו פורמטים של קבצים ניתן להשתמש?
מ-NodeJS tls.createSecureContext:
כל מחרוזת או Buffer יכולים להכיל מספר CA של PEM המחוברים יחד
אם כי, באופן כללי NodeJS משתמש בפורמט PEM.
איך אני בודק שחבילת CA אכן נמצאת בשימוש?
אתה יכול להשתמש בתעודה שלא נחתמה על ידי רשות התעודות שלך, לדוגמה תעודה חתומה עצמית.
תשובה #2
נקודה אחת, שאולי עדינה יותר ממה שרצית: nodejs tls.createSecureContext קורא באופן פנימי ל-OpenSSL PEM_read_bio_X509_AUX שבפועל מקבל שלושה פורמטי PEM (או כל רצף של אותם שלושה פורמטים, מכיוון ש-nodejs מבצע לולאה). עבור שניים מהם, הבלוב base64/64cpl מכיל (בדיוק) תעודת X.509, כפי שמוגדר מחדש ב-rfc7468 ס' 5, עם התווית המועדפת "CERTIFICATE" או התווית המיושנת "X509 CERTIFICATE". בנוסף, OpenSSL מקבל פורמט משלו עם התווית "TRUSTED CERTIFICATE" שבו הבלוב מכיל תעודת X.509 בנוסף לנתונים נוספים (ASN.1) המוגדרים על ידי OpenSSL; ראו לדוגמה את דף היד של d2i_X509_AUX באינטרנט כאן. OpenSSL לא משתמש בנתונים נוספים אלה הרבה, וכמובן שאף דבר אחר לא משתמש בהם כלל, לכן זה נדיר.
ולמניעת בלבול אולי כדאי לציין כי כל רוטינות PEM_read_ של OpenSSL, כולל זו, מתעלמות מכל נתוני 'הערה' במהלך החיפוש אחר נתוני ה-PEM, כך שבפועל קובץ/בופר שמכיל זבל, אחר כך תעודת PEM, אחר כך עוד זבל, ואז תעודת PEM נוספת, וכו', יעבוד באותה צורה כאילו הכיל רק את תעודות ה-PEM.