שאלה מהו קובץ Pem וכיצד הוא שונה מתבניות קובץ מפתח אחרות של OpenSSL?


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

עם זאת, בחיפושים שלי אני נתקל לעתים קרובות פורמטים של קבצים שונים (.key, .csr, .pem) אבל אני אף פעם לא הצלחתי למצוא הסבר טוב של מה כל פורמט קובץ של המטרה.

תהיתי אם אנשים טובים כאן ServerFault יכול לספק כמה הבהרות בעניין זה?


1179
2018-05-19 02:24




stackoverflow.com/a/45886431/1599699 - Andrew


תשובות:


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

  • .csr - זוהי בקשה לחתום על אישור. יישומים מסוימים יכולים ליצור אלה להגשת לרשויות אישורים. הפורמט בפועל הוא PKCS10 המוגדר ב 2986. הוא כולל כמה / כל הפרטים המרכזיים של התעודה המבוקשת, כגון נושא, ארגון, מדינה, whatnot, כמו גם את מפתח ציבורי של האישור כדי לקבל חתם. חתימה זו חתומה על ידי CA ותעודה מוחזרת. התעודה שהוחזרה היא הציבור תעודה (הכוללת את המפתח הציבורי אבל לא את המפתח הפרטי), אשר עצמו יכול להיות כמה פורמטים.
  • .pem - מוגדר RFCs 1421 דרך 1424, זהו פורמט מכיל המכיל רק את האישור הציבורי (כגון עם התקנות Apache וקבצי אישור של CA /etc/ssl/certs), או עשויים לכלול שרשרת אישורים שלמה, כולל מפתח ציבורי, מפתח פרטי ותעודות שורש. באופן תמוה, הוא עשוי לקודד גם אחריות חברתית (למשל, כמו בשימוש כאן) כמו בפורמט PKCS10 ניתן לתרגם PEM. השם הוא מ פרטיות משופרת של דואר (PEM), שיטה כושלת עבור דוא"ל מאובטח אבל פורמט המכיל אותו הוא חי על, והוא תרגום base64 של x509 ASN.1 מפתחות.
  • .key - זהו קובץ בפורמט PEM המכיל רק את המפתח הפרטי של תעודה מסוימת הוא רק שם קונבנציונאלי ולא אחד סטנדרטי. התקנות Apache, זה מתגורר לעתים קרובות /etc/ssl/private. הזכויות על קבצים אלה הם חשובים מאוד, וכמה תוכניות יסרבו לטעון את התעודות אם הם טועים.
  • .pkcs12 .pfx .p12 - מוגדר במקור על ידי RSA ב תקני קריפטוגרפיה של מפתח ציבורי (מקוצר PKCS), את "12" וריאנט היה משופר במקור על ידי מיקרוסופט, ולאחר מכן הגיש בתור RFC 7292. זהו פורמט מכיל סיסמה המכיל שני זוגות אישורים ציבוריים ופרטיים. שלא כמו קבצי .pem, מיכל זה מוצפן במלואו. Opensll יכול להפוך את זה לקובץ .pem עם שני מפתחות ציבוריים ופרטיים: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes 

כמה פורמטים אחרים שמופיעים מעת לעת:

  • .der - דרך לקודד תחביר ASN.1 בינארי, קובץ .pem הוא רק קובץ base64 מקודד Base64. OpenSSL יכול להמיר אותם ל- .pem (openssl x509 -inform der -in to-convert.der -out converted.pem). Windows רואה אותם כקובץ אישור. כברירת מחדל, Windows ייצא אישורים כקבצים בפורמט .DER עם תוסף שונה. כמו...
  • .cert .cer .crt - קובץ .pem (או לעתים רחוקות.) מעוצב עם סיומת אחרת, כזו המוכרת על ידי Windows Explorer כאישור, אשר .pem אינו.
  • .pbb .keystore - מוגדר ב RFC 2315 כמו PKCS מספר 7, זהו פורמט המשמש את Windows עבור מחלף התעודה. ג 'אווה מבין אלה מקורי, ולעתים קרובות משתמש .keystore כתוספת. שלא כמו תעודות .pem סגנון, פורמט זה יש מוגדר דרך לכלול תעודות נתיב הסמכה.
  • .crl - רשימת ביטול אישורים. רשויות אישור לייצר אלה כדרך לבטל אישורים לפני התפוגה. אתה יכול לפעמים להוריד אותם מאתרים CA.

לסיכום, ישנן ארבע דרכים שונות להציג תעודות ומרכיביהן:

  • PEM - מנוהל על ידי RFCs, שלה בשימוש מועדף על ידי תוכנת קוד פתוח. זה יכול להיות מגוון של הרחבות (.pem, .key, .cer, .cert, יותר)
  • PKCS7 - תקן פתוח המשמש את Java ונתמך על ידי Windows. אינו מכיל חומר מפתח פרטי.
  • PKCS12 - תקן פרטי של Microsoft שהוגדר מאוחר יותר ב- RFC המספק אבטחה משופרת לעומת פורמט PEM של טקסט רגיל. זה יכול להכיל חומר מפתח פרטי. שלה בשימוש מועדף על ידי מערכות Windows, והוא יכול להיות חופשי להמיר בפורמט PEM באמצעות השימוש openssl.
  • דר - פורמט האב של PEM. כדאי לחשוב על זה כעל גירסה בינארית של קובץ PEM מקודד Base64. לא בשימוש שגרתי מאוד מחוץ ל- Windows.

אני מקווה שזה עוזר.


1456
2018-05-19 02:49



היתרון הגדול של סטנדרטים הוא שיש כל כך הרבה לבחירה ... - squillman
.crt הוא עוד הרחבה שכיחה עבור .cert ו .cer - David Pashley
PEM הוא פורמט קובץ שעשוי לכלול אישור (aka) מפתח ציבורי), מפתח פרטי או אכן משורשרים יחד. אל תשקיע כל כך הרבה תשומת לב לסיומת הקובץ; זה אומר פרטיות משופרת דואר, להשתמש בו לא לראות הרבה להשתמש עבור אבל פורמט הקובץ תקוע מסביב. - Dan Carley
תשובה שימושית מאוד, אבל אני לא חושב שאתה מכוסה. פורמט שנוצר על ידי ssh-keygen. זה יהיה שימושי לדעת איך זה קשור עם כל השאר. - Jez
לא יכול לשים לב "פרטיות משופרת דוא"ל" ייתן את ראשי תיבות "PEE" לעומת "PEM". RFCs נוטים להשתמש בביטוי "פרטיות משופרת מייל" - aidan


PEM על עצמו הוא לא תעודה, זה רק דרך לקידוד נתונים. תעודות X.509 הן סוג אחד של נתונים המקודדים בדרך כלל באמצעות PEM.

PEM הוא אישור X.509 (שמבנהו מוגדר באמצעות ASN.1), מקודד באמצעות ASN.1 DER (כללי קידוד מובחנים), ולאחר מכן מופעל באמצעות קידוד Base64 ומתקרב בין שורות עוגן טקסט רגיל (BEGIN CERTIFICATE AND END CERTIFICATE ).

אתה יכול לייצג את אותם נתונים באמצעות PKCS # 7 או PKCS # 12 ייצוגים, ואת כלי שורת הפקודה openssl ניתן להשתמש כדי לעשות את זה.

היתרונות הברורים של PEM הוא שזה בטוח להדביק לתוך הגוף של הודעת דוא"ל כי יש לו קווי עוגן הוא 7-bit נקי.

RFC1422 יש פרטים נוספים על תקן PEM כפי שהוא קשור מפתחות ואישורים.


124
2018-06-06 15:19



איך עושים את זה "באמצעות שורת הפקודה openssl"? - Samik R
כדי להמיר קובץ DER (.crt .cer) ל PEM: openssl x509 -inform der -in cert.cer -out cert.pem. כדי להמיר קובץ PEM ל- DER: openssl x509 -outform der -in cert.pem -out certi.der. כדי להמיר קובץ PKCS # 12 (.pfx .p12) המכיל מפתח פרטי ואישורים ל- PEM: openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes. כדי להמיר קובץ אישור PEM ומפתח פרטי ל- PKCS # 12 (.pfx .p12): openssl pkcs12 -export -out cert.pfx -inkey privateKey.key -in cert.crt -certfile CACert.crt מ כאן - mpeac


לפעמים א .crt הקובץ כבר .pem. ראה: https://stackoverflow.com/questions/991758/openssl-pem-key


51
2018-03-15 00:24



ואכן, רק עכשיו הבחנתי בכך. הייתי צריך להזין תעודת PEM ב loadbalancer rackspace ואני תהיתי אם crt שנוצר היה בפורמט זה. אבל זה עבד כך, כך גם המסקנה שלי, רוב הדברים האלה מופיעים בפורמט של פ.מ.מ. - Glenn Plas