ใบรับรอง PEM (.pem)
IETF มาตรฐานPrivacy-Enhanced Mail (PEM) เป็นการเข้ารหัสแบบข้อความที่ใช้กันแพร่หลายสำหรับวัตถุเข้ารหัส เช่น ใบรับรองและคีย์ส่วนตัว โดยใช้ข้อมูล Base64 คั่นด้วยขอบเขตที่ระบุป้ายกำกับ “-----BEGIN...-----” และ “-----END...-----”
แปลง CRT เป็น PEM
ตัวแปลงจาก CRT เป็น PEM ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PEM โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PEM โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
2D 2D 2D 2D 2D 42 45 47 49 4Eการแสดงผลรูปแบบ ASCII: -----BEGIN
มาตรฐาน: IETF RFC 7468 / RFC 1421
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | คอนเทนเนอร์ ASCII แบบเกราะ Base64 ที่คั่นด้วย '-----BEGIN [LABEL]-----' และ '-----END [LABEL]-----' ซึ่งครอบโครงสร้าง DER แบบไบนารี |
| การบีบอัด | รูปแบบข้อความแบบไม่บีบอัด |
| การจัดลำดับไบต์ | สตรีมข้อความ ASCII / UTF-8 |
| พื้นที่สี | ไม่เกี่ยวข้อง (คอนเทนเนอร์คริปโตกราฟี) |
| ช่องสัญญาณและโครงสร้าง | ใบรับรอง, กุญแจส่วนตัว (RSA/EC/DSA), CSR, กุญแจสาธารณะ และรายการเพิกถอนใบรับรอง |
| ขนาดสูงสุด | สตรีมข้อความไม่จำกัด (รองรับใบรับรองหลายฉบับที่ต่อกันเป็นสาย) |
| ความโปร่งใส | ซอง ASCII แบบเกราะที่เป็นข้อความอ่านได้ |
| การสตรีมและแบบโปรเกรสซีฟ | แยกข้อมูลผ่านสตรีมตามลำดับทีละแบนเนอร์ |
ตารางเปรียบเทียบทางเทคนิค: PEM กับคู่แข่ง
| คุณลักษณะทางเทคนิค | PEM (ปัจจุบัน) | DER | P12 | CRT |
|---|---|---|---|---|
| ข้อความเทียบกับไบนารี | ข้อความ Base64 ที่มนุษย์อ่านได้ | ไบต์ไบนารีดิบเท่านั้น | ไฟล์เก็บข้อมูลไบนารีที่เข้ารหัส | โดยทั่วไปคือข้อความ Base64 |
| การใช้งานบนคลาวด์และ DevOps | มาตรฐานที่ใช้ทั่วไป (AWS, K8s) | โทเค็นฮาร์ดแวร์ / Java | การนำเข้าเซิร์ฟเวอร์ Windows IIS | การกำหนดค่าเว็บเซิร์ฟเวอร์ |
| เนื้อหาที่อนุญาต | ใบรับรอง กุญแจส่วนตัว สายโซ่ใบรับรอง และ CSR | ใบรับรองหรือคีย์เดี่ยว | ใบรับรองที่รวมกับคีย์ซึ่งเข้ารหัสไว้ | โดยทั่วไปคือใบรับรองสาธารณะเท่านั้น |
| คัดลอกและวางได้ | ได้ (วางลงในช่องข้อความโดยตรง) | ไม่ได้ (ไบนารี) | ไม่ได้ (ไบนารี) | ได้ (หากอยู่ในรูปแบบ PEM) |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาด OpenSSL: 'PEM_read_bio: no start line'
สาเหตุหลัก: แบนเนอร์ส่วนหัว '-----BEGIN ...-----' หายไปหรือเสียหาย หรือความเสียหายจากการขึ้นบรรทัดใหม่ CRLF ของ Windows
การกู้คืน: กู้คืนแบนเนอร์ส่วนหัวขีด 5 ขีดมาตรฐานโดยใช้เครื่องมือใบรับรอง File2File.app
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ไฟล์ PEM มักจะมีคีย์ส่วนตัวที่ไม่ได้เข้ารหัส ('-----BEGIN RSA PRIVATE KEY-----') ซึ่งให้สิทธิ์การเข้าถึงเซิร์ฟเวอร์อย่างสมบูรณ์หากเปิดเผย
เวกเตอร์การโจมตีที่ทราบ
- การคอมมิตคีย์ส่วนตัว PEM ที่ไม่ได้เข้ารหัสไปยังที่เก็บการควบคุมเวอร์ชันสาธารณะ
- การโจมตีแบบ Directory traversal เพื่ออ่านคีย์ PEM ของเซิร์ฟเวอร์ผ่าน local file inclusion (LFI)
- รหัสผ่านที่อ่อนแอในไฟล์ PEM ของคีย์ส่วนตัวที่เข้ารหัส
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ปกป้องไฟล์ PEM ของคีย์ส่วนตัวด้วยสิทธิ์ระบบไฟล์ที่เข้มงวด (chmod 600) และห้ามคอมมิตไปที่ git
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- อ่านและคัดลอกวางได้: วางลงในแบบฟอร์มเว็บ ช่องป้อนข้อมูลในคอนโซลคลาวด์ (AWS, GCP) และอีเมลได้
- เครื่องมือและแพลตฟอร์มอย่าง OpenSSL, บริการ Linux, Docker, Kubernetes และระบบคลาวด์ใช้กันทั่วไป แต่รูปแบบที่ยอมรับแตกต่างกันตามส่วนประกอบ
- รองรับใบรับรองหลายรายการ: สามารถเก็บสายโซ่ความเชื่อถือของใบรับรองทั้งหมดไว้ในไฟล์ข้อความเดียวโดยวางบล็อกต่อกัน
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- มีขนาดใหญ่กว่าไบนารี DER ดิบประมาณ 33% เนื่องจากข้อมูลส่วนเกินจากการเข้ารหัส Base64
- ความเสียหายโดยอุบัติเหตุ: การเปลี่ยนแปลงการตัดบรรทัดหรือเครื่องหมายขีดที่ขาดหายไปในแบนเนอร์อาจทำให้การแยกวิเคราะห์ล้มเหลว
- ไฟล์ PEM ของคีย์ส่วนตัวที่ไม่ได้เข้ารหัสมีความเสี่ยงด้านความปลอดภัยที่สูงมากหากรั่วไหล
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- แม้ PEM จะสร้างขึ้นสำหรับระบบอีเมลเข้ารหัสที่ไม่ได้รับความนิยม แต่วิธีห่อหุ้มข้อมูลในรูปแบบ ASCII ของ PEM กลับกลายเป็นรูปแบบความปลอดภัยที่ได้รับความนิยมมากที่สุดในโลก
- ไฟล์ PEM ที่ถูกต้องทุกไฟล์จะเริ่มต้นด้วยขีดห้าขีด: '-----BEGIN'
- ห่วงโซ่ใบรับรอง SSL เต็มรูปแบบสร้างขึ้นง่ายๆ โดยการวางบล็อก 'BEGIN CERTIFICATE' หลายบล็อกต่อกันในไฟล์ .pem เดียว
คำถามทางเทคนิคที่พบบ่อย
ไฟล์ .pem คืออะไร
ไฟล์ .pem เป็นรูปแบบข้อความสำหรับจัดเก็บใบรับรองความปลอดภัย กุญแจส่วนตัว หรือสายโซ่ใบรับรองทั้งหมดเป็นข้อความ Base64 ที่อ่านได้ พร้อมแบนเนอร์ "-----BEGIN...-----"
แปลง PEM เป็น P12 หรือ PFX ได้อย่างไร?
คุณสามารถแปลงใบรับรอง PEM และคีย์ส่วนตัวของคุณให้เป็นไฟล์ P12/PFX ที่มีการป้องกันด้วยรหัสผ่านได้ในคลิกเดียวโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณ
ตรวจสอบวันหมดอายุของใบรับรอง PEM ได้อย่างไร?
เปิดไฟล์ .pem ใน File2File.app เพื่ออ่านวันหมดอายุ ผู้ออกใบรับรอง และชื่อโดเมน โดยไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ภายนอก
คู่การแปลงไฟล์ PEM ที่เกี่ยวข้อง
การแปลงใบรับรองความปลอดภัย CRT แบบไบนารีให้อยู่ในรูปแบบข้อความ PEM ที่เข้ารหัสด้วย Base64 ทำให้สามารถใช้งานร่วมกับ Apache, Nginx และเว็บเซิร์ฟเวอร์ Linux สมัยใหม่ได้
การแปลงใบรับรองข้อความ PEM เป็นใบรับรองไบนารี CRT ช่วยให้เซิร์ฟเวอร์ Apache และระบบ Windows สามารถอ่านข้อมูลประจำตัวความปลอดภัยของเว็บไซต์ได้อย่างถูกต้อง
การแปลงชุดข้อมูล PKCS #12 เป็นใบรับรอง PEM จะดึงคีย์สาธารณะและคีย์ส่วนตัวจากคลังเก็บไบนารีที่มีการป้องกันออกมาเป็นไฟล์ข้อความสำหรับเว็บเซิร์ฟเวอร์
การแปลงใบรับรอง PEM เป็นชุดข้อมูล PKCS #12 จะรวมใบรับรองสาธารณะและคีย์ส่วนตัวของคุณไว้ในไฟล์เดียวที่มีรหัสผ่านป้องกัน เพื่อความสะดวกในการติดตั้งบนเซิร์ฟเวอร์ Windows และเว็บเบราว์เซอร์
การแปลงใบรับรองไบนารี DER เป็นใบรับรอง PEM จะเปลี่ยนการเข้ารหัสจากไบต์ไบนารีดิบเป็นข้อความ Base64 ASCII เพื่อให้เว็บเซิร์ฟเวอร์และโปรแกรมแก้ไขข้อความอ่านได้ง่าย
การแปลงใบรับรองความปลอดภัย CER แบบไบนารีเป็นไฟล์ข้อความ PEM ที่เข้ารหัสด้วย Base64 ช่วยให้ผู้ดูแลระบบสามารถอ่านและวางคีย์ความปลอดภัยลงในเว็บเซิร์ฟเวอร์และการกำหนดค่าแอปพลิเคชันได้อย่างง่ายดาย