ความแตกต่างระหว่างไฟล์ .pfx, .p12, .cer และ .crt อธิบายไว้โดยละเอียด

การปรับปรุงครั้งล่าสุด: 13/01/2026
ผู้แต่ง: ไอแซก
  • ไฟล์รูปแบบ .cer และ .crt มักบรรจุใบรับรองสาธารณะ X.509 ในรูปแบบ PEM หรือ DER ในขณะที่ไฟล์ .pfx และ .p12 เป็นคอนเทนเนอร์ PKCS#12 ที่มีใบรับรอง ห่วงโซ่ใบรับรอง และคีย์ส่วนตัวที่ป้องกันด้วยรหัสผ่าน
  • PEM และ PKCS#7 (.p7b) ใช้การเข้ารหัส Base64 ASCII ในขณะที่ DER และ PKCS#12 ใช้การเข้ารหัสแบบไบนารี โดยทั้งหมดนี้แสดงถึงข้อมูลการเข้ารหัสเดียวกัน เพียงแต่มีรูปแบบและวิธีการใช้งานที่แตกต่างกัน
  • กุญแจส่วนตัวจะถูกเก็บไว้ในไฟล์ .key หรือภายในไฟล์ .pfx/.p12 เท่านั้น ไม่เคยเก็บไว้ในไฟล์ .p7b การทราบตำแหน่งที่ตั้งของกุญแจนั้นมีความสำคัญอย่างยิ่งสำหรับการติดตั้ง การส่งออก หรือการต่ออายุใบรับรอง
  • OpenSSL อนุญาตให้แปลงระหว่าง PEM, DER, PKCS#7 และ PKCS#12 ทำให้ง่ายต่อการปรับใบรับรองใดๆ ให้เข้ากับรูปแบบที่เซิร์ฟเวอร์หรือระบบแต่ละระบบต้องการ

รูปแบบใบรับรองดิจิทัล

ถ้าคุณมาที่นี่เพื่อมองหา ความแตกต่างระหว่างไฟล์ .pfx, .p12, .cer และ .crtคุณอาจเคยเจอกับไฟล์แปลกๆ มากกว่าหนึ่งไฟล์มาแล้วขณะติดตั้งใบรับรองดิจิทัลหรือ SSL บนเซิร์ฟเวอร์ คุณไม่ใช่คนเดียวหรอก: ระหว่างคำย่อ นามสกุล และรูปแบบต่างๆ มันง่ายที่จะสับสนและไม่รู้ว่าแต่ละไฟล์ทำอะไร หรือต้องใช้ไฟล์ไหนในแต่ละกรณี

ข่าวดีก็คือ แม้ว่าชื่อไฟล์อาจฟังดูน่ากลัว แต่ทั้งหมดนี้สามารถอธิบายได้อย่างง่ายดาย หากเราเข้าใจว่าไฟล์ทั้งหมดเหล่านี้ไม่ใช่สิ่งอื่นใดเลย คอนเทนเนอร์ใบรับรองและคีย์ ในรูปแบบต่างๆ (ข้อความหรือไบนารี) และออกแบบมาสำหรับระบบต่างๆ (Windows, ลินุกซ์(Java, เว็บเบราว์เซอร์ ฯลฯ) เราจะมาดูทีละอย่างอย่างใจเย็น และเชื่อมโยงความสัมพันธ์ระหว่างกัน เพื่อให้คุณเข้าใจอย่างถ่องแท้ว่าแต่ละอย่างคืออะไร มีไว้เพื่ออะไร และวิธีการใช้งานหรือแปลงข้อมูลเมื่อจำเป็น

ใบรับรองดิจิทัลคืออะไร และไฟล์ .pfx, .p12, .cer และ .crt เกี่ยวข้องกันอย่างไร?

ใบรับรองดิจิทัลก็คือ... เอกสารอิเล็กทรอนิกส์ที่ลงนามโดยหน่วยงานรับรอง (CA หรือตามระเบียบ eIDAS คือ ผู้ให้บริการที่มีคุณสมบัติเหมาะสม) ที่เชื่อมโยงข้อมูลประจำตัวกับกุญแจสาธารณะ ข้อมูลประจำตัวนั้นอาจเป็นบุคคล บริษัท เว็บเซิร์ฟเวอร์ โดเมน ฯลฯ

เพื่อให้เกิดการเชื่อมต่อนี้ จะใช้วิธีการดังต่อไปนี้: การเข้ารหัสแบบกุญแจสาธารณะหรือการเข้ารหัสแบบไม่สมมาตรมีกุญแจอยู่คู่หนึ่ง คือ กุญแจสาธารณะ (ซึ่งใครๆ ก็รู้ได้) และกุญแจส่วนตัว (ซึ่งมีเพียงเจ้าของเท่านั้นที่ควรมี) ข้อมูลที่เข้ารหัสด้วยกุญแจสาธารณะจะสามารถถอดรหัสได้ด้วยกุญแจส่วนตัวเท่านั้น และในทางกลับกัน ทำให้สามารถใช้ในการตรวจสอบความถูกต้อง การเข้ารหัส และลายเซ็นอิเล็กทรอนิกส์ได้

เบื้องหลังใบรับรองทั้งหมดเหล่านี้ มีบางสิ่งซ่อนอยู่ โครงสร้างพื้นฐานกุญแจสาธารณะ หรือ PKIซึ่งรวมถึงหน่วยงานออกใบรับรอง หน่วยงานจดทะเบียน คลังเก็บใบรับรอง รายการเพิกถอนใบรับรอง (CRL) และในหลายสภาพแวดล้อม หน่วยงานประทับเวลา (TSA) เพื่อบันทึกว่าสิ่งใดลงนามเมื่อใด

โครงสร้างภายในของใบรับรองทั่วไปส่วนใหญ่เป็นไปตามมาตรฐาน เอ็กซ์.509ซึ่งกำหนดโดย ITU และอธิบายรายละเอียดไว้ใน RFC 5280 มาตรฐานนี้กำหนดฟิลด์ต่างๆ เช่น เวอร์ชัน หมายเลขประจำเครื่อง อัลกอริทึมลายเซ็น ผู้ออก ระยะเวลาที่ใช้ได้ หัวข้อ กุญแจสาธารณะของผู้ถือ และส่วนขยายเพิ่มเติมที่เป็นไปได้

ในส่วนของอัลกอริธึมนั้น โดยทั่วไปใบรับรองจะใช้การเข้ารหัสแบบอสมมาตร RSA, DSA หรือ ECDSARSA และ ECDSA ใช้ได้ทั้งสำหรับการลงนามและการเข้ารหัส ในขณะที่ DSA เน้นที่การลงนามและการตรวจสอบลายเซ็นดิจิทัล

รูปแบบภายในและส่วนขยาย: PEM, DER, CER, CRT และของบริษัท

เมื่อเราพูดถึงส่วนขยายต่างๆ เช่น .cer, .crt, .pem, .der, .pfx, .p12 หรือ .p7bในความเป็นจริง เรากำลังผสมผสานสองแนวคิดเข้าด้วยกัน ได้แก่ รูปแบบการเข้ารหัสของใบรับรอง (ข้อความ Base64 หรือไบนารี) และหน้าที่ของไฟล์นั้น (เฉพาะใบรับรอง ใบรับรอง + กุญแจส่วนตัว ชุดใบรับรอง ฯลฯ)

ในระดับรูปแบบภายใน ใบรับรอง X.509 จะถูกแสดงด้วย ASN.1 และโดยปกติจะเข้ารหัสด้วย DER (ไบนารี) หรือรูปแบบข้อความ PEM (DER ที่แปลงเป็น Base64 และห่อด้วยส่วนหัว เช่น เริ่มต้น/สิ้นสุดจากนั้น ระบบและมาตรฐานต่างๆ ก็ได้ถูกกำหนดขึ้น ภาชนะเฉพาะ เช่น PKCS#7 (.p7b) หรือ PKCS#12 (.pfx, .p12)

กุญแจสำคัญในการหลีกเลี่ยงความสับสนคือ การจำไว้ว่านามสกุลไฟล์มักจะมีเพียงหนึ่งเดียว หลักเกณฑ์การตั้งชื่อไฟล์ .cer หรือไฟล์ .crt สามารถบรรจุข้อมูลเดียวกันได้ เพียงแต่ไฟล์ .cer มักใช้ใน Windows มากกว่า ส่วนไฟล์ .crt มักใช้ในระบบ Unix/Linux เป็นต้น

ในกลุ่มโดยรวมนี้ มีบางส่วน รูปแบบหลัก สิ่งเหล่านี้สำคัญมากที่จะต้องทำความเข้าใจอย่างชัดเจน เพราะเป็นสิ่งที่คุณจะได้พบเจออยู่เสมอเมื่อทำงานกับ SSL/TLS หรือใบรับรองส่วนบุคคล

รูปแบบ PEM: "ข้อความที่อ่านได้" ของใบรับรอง

รูปแบบไฟล์ PEM เป็นรูปแบบที่ใช้กันมากที่สุดสำหรับใบรับรอง SSL/TLS บนเซิร์ฟเวอร์ เช่น Apache หรือ Nginx และในเครื่องมือรักษาความปลอดภัยส่วนใหญ่ ไฟล์ PEM ก็คือไฟล์ที่ประกอบด้วยข้อมูลใบรับรองต่างๆ นั่นเอง DER ถูกเข้ารหัสใหม่ในรูปแบบ Base64 และล้อมรอบด้วยส่วนหัวที่เป็นข้อความซึ่งจะช่วยให้คุณสามารถเปิดและคัดลอกไฟล์ได้ด้วยโปรแกรมแก้ไขข้อความใดก็ได้ (เช่น Notepad, nano, vim เป็นต้น)

ไฟล์ PEM สามารถระบุได้เนื่องจากเนื้อหาถูกคั่นด้วยเส้น เช่น —–BEGIN ใบรับรอง—– y —–END ใบรับรอง - เมื่อมีใบรับรองอยู่ด้วย หรือ —–เริ่มใช้รหัสส่วนตัว—– y —–สิ้นสุดรหัสส่วนตัว—– เมื่อข้อมูลนั้นมีคีย์ส่วนตัวอยู่ ส่วนที่อยู่ระหว่างนั้นคือสตริง Base64 ที่แสดงถึงข้อมูลไบนารีดั้งเดิม

ในไฟล์ PEM ไฟล์เดียว คุณสามารถมีข้อมูลได้ดังนี้ เฉพาะใบรับรองเท่านั้นสามารถจัดส่งใบรับรองพร้อมห่วงโซ่ CA ระดับกลาง คีย์ส่วนตัวแยกต่างหาก หรือแม้แต่แพ็กเกจทั้งหมด (คีย์ส่วนตัว ใบรับรองเซิร์ฟเวอร์ ใบรับรองระดับกลาง และใบรับรองราก) ได้ นอกจากนี้ยังมีการจัดเตรียมคำขอลงนามใบรับรองในรูปแบบ PEM ด้วย ความรับผิดชอบต่อสังคมซึ่งก็คือโครงสร้าง PKCS#10 ที่ถูกแปลงเป็นข้อความเท่านั้นเอง

รูปแบบนี้ได้รับการกำหนดไว้ใน RFCs 1421-1424 เป็นส่วนหนึ่งของโครงการ Privacy-enhanced Electronic Mail ซึ่งไม่ได้รับความนิยมสำหรับการใช้งานอีเมล แต่ได้ทิ้งรูปแบบข้อความที่ยอดเยี่ยมไว้สำหรับการใช้งานอื่นๆ ข้อมูลการเข้ารหัสการขนส่ง ในรูปแบบที่สะดวก อ่านง่าย และคัดลอก/วางได้สะดวก

  อาชญากรรมคอมพิวเตอร์ที่พบบ่อยที่สุด 6 ประเภทบนเว็บ

ในทางปฏิบัติ ไฟล์ที่มีนามสกุล... .pem, .crt, .cer หรือ .key ในระบบ Unix/Linux ไฟล์เหล่านี้มักจะเป็นไฟล์ PEM โดยทั่วไปแล้ว ไฟล์ .key จะเก็บคีย์ส่วนตัว ไฟล์ .crt หรือ .cer จะเก็บใบรับรองเซิร์ฟเวอร์ และบางครั้งอาจมีไฟล์ PEM เพิ่มเติมที่ประกอบด้วยห่วงโซ่ CA ระดับกลางด้วย

รูปแบบ DER: ไบนารีที่บริสุทธิ์และเรียบง่าย

DER (Distinguished Encoding Rules) คือ รูปแบบการเข้ารหัสไบนารี ของโครงสร้าง ASN.1 ที่อธิบายใบรับรอง X.509 มันไม่ใช่ข้อความ ดังนั้นหากคุณเปิดด้วยโปรแกรมแก้ไขข้อความ คุณจะเห็นอักขระแปลก ๆ แทนที่จะเป็นสตริง Base64 ทั่วไป

ไฟล์ DER สามารถประกอบด้วย ใบรับรองหรือรหัสส่วนตัวประเภทใดก็ได้โดยทั่วไปไฟล์ประเภทนี้จะมีนามสกุล .der หรือ .cer โดยเฉพาะในระบบ Windows หรือบนแพลตฟอร์ม Java บน Windows ไฟล์ .der จะถูกจดจำว่าเป็นไฟล์ใบรับรองโดยตรงและจะเปิดขึ้นด้วยโปรแกรมดูไฟล์ในตัวเมื่อดับเบิ้ลคลิก

ความแตกต่างในทางปฏิบัติระหว่าง PEM กับ DER คือ ในขณะที่ PEM สามารถคัดลอกและส่งอีเมลหรือวางลงในแบบฟอร์มบนเว็บได้อย่างง่ายดาย แต่ DER นั้นเป็น... บล็อกไบนารีที่ปิดแล้ว ออกแบบมาเพื่อการใช้งานโดยตรงของแอปพลิเคชัน อย่างไรก็ตาม ภายในแล้ว ข้อมูลยังคงเหมือนเดิม: ไฟล์ PEM ก็คือไฟล์ DER ที่ถูกเข้ารหัสใหม่เป็นข้อความ Base64 นั่นเอง

เครื่องมืออย่าง OpenSSL ช่วยให้คุณสามารถสลับจาก DER เป็น PEM และในทางกลับกันได้ด้วยคำสั่งเดียว โดยไม่เปลี่ยนแปลงเนื้อหาเชิงตรรกะของใบรับรองเลย เพียงแต่เปลี่ยนรูปแบบการแสดงผลเท่านั้น

นามสกุลไฟล์ .cer และ .crt: สุนัขตัวเดียวกันแต่มีปลอกคอต่างกัน

นามสกุลไฟล์ .cer และ .crt ใช้เพื่อกำหนด ไฟล์ที่มีใบรับรองสาธารณะโดยปกติจะมีรูปแบบ PEM หรือ DER ขึ้นอยู่กับระบบที่ใช้สร้างหรือติดตั้งไฟล์เหล่านั้น

ในบางกรณี ไฟล์ .crt บนเซิร์ฟเวอร์ Apache จะเป็นไฟล์ประเภทหนึ่ง ได้รับการรับรองใน PEM ไฟล์ .cer จะถูกล้อมรอบด้วยส่วนหัว BEGIN/END CERTIFICATE และพร้อมที่จะนำไปวางในบล็อกการกำหนดค่า ใน Windows ไฟล์ .cer สามารถเป็นได้ทั้ง PEM หรือ DER แม้ว่าโดยทั่วไปแล้วจะจัดอยู่ในประเภทใดประเภทหนึ่งขึ้นอยู่กับเครื่องมือที่สร้างไฟล์นั้นขึ้นมา

สิ่งสำคัญที่ต้องเข้าใจคือ นามสกุลไฟล์ไม่ได้กำหนดรูปแบบภายในอย่างเคร่งครัด ไฟล์ .cer อาจเป็นข้อความ PEM หรือไบนารี DER และโปรแกรมดูไฟล์หรือยูทิลิตี้อย่าง OpenSSL จะเป็นตัวกำหนดวิธีการอ่านไฟล์นั้น ในเบราว์เซอร์และระบบ Windows การดับเบิ้ลคลิกจะเปิด... โปรแกรมดูใบรับรองซึ่งคุณสามารถดูข้อมูลผู้ออกบัตร หัวข้อ วันหมดอายุ การใช้งานคีย์ ฯลฯ ได้

เมื่อคุณส่งออกใบรับรองโดยไม่มีคีย์ส่วนตัวจากเบราว์เซอร์หรือที่เก็บใบรับรองของ Windows คุณจะได้ไฟล์ .cer ซึ่งใช้สำหรับ... ตรวจสอบความถูกต้องของลายเซ็น ห่วงโซ่ความเชื่อถือ หรือเข้ารหัสข้อมูลแต่ห้ามลงนามในนามของเจ้าของโดยเด็ดขาด (เพราะต้องใช้รหัสส่วนตัว ซึ่งแยกต่างหากหรืออยู่ในภาชนะที่ได้รับการป้องกัน)

ไฟล์ CSR, KEY, CA และไฟล์ระดับกลาง: ไฟล์อื่นๆ ที่แนบมาพร้อมกับใบรับรอง

เมื่อคุณดำเนินการขอใบรับรอง SSL หรือใบรับรองส่วนบุคคล คุณจะไม่เห็นแค่ไฟล์ .pfx, .p12 หรือ .cer เท่านั้น กระบวนการทั้งหมดเกี่ยวข้องกับไฟล์ประเภทอื่นๆ ด้วย ใบรับรอง .csr, .key หรือ CA (รากและตัวกลาง) ซึ่งมีความสำคัญเท่าเทียมกันเพื่อให้ทุกอย่างทำงานได้อย่างราบรื่น

คำขอลงนามหรือ ความรับผิดชอบต่อสังคม (.csr) ไฟล์นี้โดยทั่วไปจะถูกสร้างขึ้นบนเซิร์ฟเวอร์ที่จะติดตั้งใบรับรอง SSL ไฟล์นี้ประกอบด้วยคีย์สาธารณะ ชื่อโดเมน องค์กร ประเทศ และข้อมูลอื่นๆ ที่หน่วยงานออกใบรับรองจะใช้ในการออกใบรับรอง ไฟล์นี้เป็นไปตามมาตรฐาน PKCS#10 และโดยปกติจะเข้ารหัสในรูปแบบ PEM เพื่อให้คุณสามารถคัดลอกและวางลงในแบบฟอร์มของผู้ให้บริการได้

กุญแจส่วนตัวหรือ คีย์ (.key) นี่คือไฟล์ที่เก็บรหัสลับที่เชื่อมโยงกับใบรับรอง โดยปกติแล้วไฟล์นี้จะอยู่ในรูปแบบ PEM คั่นด้วย BEGIN PRIVATE KEY และ END PRIVATE KEY ไฟล์นี้เป็นไฟล์ที่มีความอ่อนไหวสูงมาก ไม่ควรนำไปเผยแพร่หรืออัปโหลดไปยังแหล่งเก็บข้อมูลสาธารณะ และในหลายกรณี ไฟล์นี้ยังมีการป้องกันด้วยรหัสผ่านเพิ่มเติมอีกด้วย

ไฟล์ของ CA หรือใบรับรองอำนาจ ประกอบด้วยกุญแจสาธารณะของหน่วยงานที่ออกหรือเป็นตัวกลางในการออกใบรับรอง เบราว์เซอร์และ OS โดยปกติแล้วจะมีรายการ CA ที่เชื่อถือได้อยู่แล้ว แต่บางครั้งคุณอาจต้องติดตั้งใบรับรองระดับกลางเพิ่มเติมเพื่อให้ห่วงโซ่ความเชื่อถือสมบูรณ์ เพื่อให้ไคลเอ็นต์สามารถตรวจสอบความถูกต้องของใบรับรองเซิร์ฟเวอร์ของคุณได้โดยไม่มีข้อผิดพลาด

ใบรับรองระดับกลางเหล่านี้สามารถจัดส่งได้ในรูปแบบไฟล์ PEM (.pem, .crt, .cer) หรือภายในคอนเทนเนอร์ เช่น .p7bในการตั้งค่าโฮสติ้ง มักจะต้องระบุไฟล์ CRT (ใบรับรองโดเมน), KEY (คีย์ส่วนตัว) และ CA หรือใบรับรองระดับกลาง เพื่อติดตั้ง SSL อย่างถูกต้อง

PKCS#7 / P7B: ชุดใบรับรองที่ไม่มีคีย์ส่วนตัว

PKCS#7 โดยปกติจะแสดงด้วยส่วนขยาย .p7b หรือ .p7cเป็นรูปแบบที่ออกแบบมาเพื่อจัดกลุ่มใบรับรองตั้งแต่หนึ่งใบขึ้นไปไว้ในคอนเทนเนอร์ที่มีโครงสร้าง โดยไม่รวมคีย์ส่วนตัว โดยทั่วไปแล้วจะใช้สำหรับ กระจายห่วงโซ่ใบรับรอง (ใบรับรองเซิร์ฟเวอร์และใบรับรองระดับกลาง) ในสภาพแวดล้อม Windows หรือ Java (Tomcat, keystore เป็นต้น)

ไฟล์ .p7b โดยทั่วไปจะถูกเข้ารหัสด้วย Base64 ASCII คล้ายกับไฟล์ PEM และถูกกำหนดขึ้นครั้งแรกใน RFC 2315 ในฐานะส่วนหนึ่งของมาตรฐานการเข้ารหัสแบบกุญแจสาธารณะ ปัจจุบัน มาตรฐานที่พัฒนาต่อยอดจากมันคือ CMS (Cryptographic Message Syntax) แต่ชื่อ PKCS#7 ยังคงใช้กันอย่างแพร่หลายในวงการใบรับรอง SSL

  แก้ไขข้อผิดพลาด Google Drive Video ยังประมวลผลอยู่

รูปแบบนี้มีประโยชน์มากเมื่อคุณต้องการ ติดตั้งห่วงโซ่ความไว้วางใจทั้งหมด บนเซิร์ฟเวอร์หรือในระบบที่จัดการใบรับรองผ่านทางที่เก็บ (เช่น Java keystore) โดยทั่วไป ผู้ให้บริการ SSL จะส่งใบรับรองเซิร์ฟเวอร์มาให้ไฟล์หนึ่ง และไฟล์ .p7b ที่มีห่วงโซ่ CA ทั้งหมดอีกไฟล์หนึ่ง หรือไฟล์ .p7b ไฟล์เดียวที่มีทุกอย่าง

หากคุณต้องการแปลงไฟล์ .p7b เป็น PEM เครื่องมืออย่าง OpenSSL ช่วยให้คุณสามารถแยกใบรับรองด้วยคำสั่งเดียวและบันทึกไว้ในไฟล์ข้อความหนึ่งไฟล์หรือมากกว่านั้นได้ จากนั้นคุณสามารถแยกบล็อก BEGIN/END CERTIFICATE ออกได้หากคุณต้องการอัปโหลดไปยังเซิร์ฟเวอร์ของคุณแยกต่างหาก

สิ่งสำคัญที่ควรทราบคือไฟล์ PKCS#7 มันไม่เคยมีรหัสส่วนตัวอยู่เลยดังนั้น ด้วยตัวมันเองจึงไม่มีประโยชน์สำหรับการลงนามหรือถอดรหัส: มันให้เพียงส่วนสาธารณะของห่วงโซ่ใบรับรองเพื่อตรวจสอบความน่าเชื่อถือเท่านั้น

PKCS#12: .pfx และ .p12 คืออะไรกันแน่?

มาตรฐาน PKCS#12 กำหนดคอนเทนเนอร์ไบนารีที่ป้องกันด้วยรหัสผ่าน ซึ่งสามารถรวมถึง... ใบรับรองสาธารณะ, ห่วงโซ่ CA ที่สมบูรณ์ และกุญแจส่วนตัว ที่เกี่ยวข้อง นามสกุลไฟล์ที่พบบ่อยที่สุดสำหรับรูปแบบนี้คือ .pfx และ .p12 ซึ่งโดยพื้นฐานแล้วเทียบเท่ากัน

ในอดีต PKCS#12 เริ่มต้นจากการเป็นรูปแบบที่เชื่อมโยงอย่างใกล้ชิดกับ Microsoft แต่ด้วย เวลา ได้รับการกำหนดมาตรฐานใน RFC 7292 และถูกนำไปใช้ในระบบทุกประเภทในปัจจุบัน เนื่องจากคุณสมบัติที่ช่วยให้ ขนส่งคู่ใบรับรองและกุญแจส่วนตัวอย่างปลอดภัย จากทีมหนึ่งสู่อีกทีมหนึ่ง

ในระบบ Windows เมื่อคุณส่งออกใบรับรอง "คีย์ส่วนตัว" จากที่เก็บใบรับรองของผู้ใช้หรือเครื่อง ตัวช่วยสร้างจะสร้างไฟล์ .pfx (หรือ .p12) ที่มีทุกสิ่งที่คุณต้องการเพื่อนำเข้าสู่ระบบอื่น ได้แก่ คีย์ส่วนตัว ผู้ถือใบรับรอง และโดยปกติแล้วจะมีห่วงโซ่ใบรับรองระดับกลางด้วย

ในระหว่างการสร้างหรือส่งออกไฟล์ PKCS#12 ระบบจะขอให้คุณระบุ การป้องกันด้วยรหัสผ่านรหัสผ่านนี้จะจำเป็นในภายหลังสำหรับการนำเข้าไฟล์ไปยังเบราว์เซอร์อื่น IIS โปรแกรมอีเมล หรือแม้แต่ระบบปฏิบัติการอื่น ด้วยวิธีนี้ หากมีคนขโมยไฟล์ .pfx ไป พวกเขาก็จะไม่สามารถใช้งานได้หากไม่ทราบรหัสผ่านนี้

เครื่องมืออย่าง OpenSSL ช่วยให้คุณแปลงไฟล์ .pfx หรือ .p12 เป็น PEM ได้ ซึ่งจะทำให้คุณได้ไฟล์ข้อความที่สามารถค้นหาบล็อกคีย์ส่วนตัว ใบรับรองเซิร์ฟเวอร์ และใบรับรองระดับกลางได้อย่างง่ายดาย และคัดลอกไปยังตำแหน่งที่เหมาะสม (ตัวอย่างเช่น ในแผงควบคุมโฮสติ้งที่ยอมรับเฉพาะ CRT, KEY และ CA แยกกัน)

การต่ออายุ การส่งออก และการนำเข้าใบรับรอง .pfx และ .p12

ในส่วนของเอกสารรับรองส่วนบุคคล (เช่น เอกสารที่ออกโดย FNMT หรือหน่วยงานอื่น ๆ เพื่อใช้ในการระบุตัวตน) วิธีการสำรองข้อมูลและต่ออายุเอกสารเหล่านั้นมีความเชื่อมโยงอย่างใกล้ชิดกับการใช้งาน ไฟล์ .pfx หรือ .p12ซึ่งเดินทางบนบัตรเข้ารหัสลับหรือโทเค็น USB หรือจัดเก็บโดยตรงในรูปแบบไฟล์ที่ได้รับการป้องกันบนคอมพิวเตอร์

หากใบรับรองส่วนบุคคลของคุณยังไม่หมดอายุ หน่วยงานหลายแห่งอนุญาตให้ดำเนินการได้ ต่ออายุทางออนไลน์: สามารถต่ออายุได้จากจุดลงทะเบียน (สมาคมวิชาชีพ บริษัท ผู้ให้บริการรับรอง ฯลฯ) และคุณจะได้รับลิงก์ทางอีเมลเพื่อดำเนินการต่อให้เสร็จสมบูรณ์จากคอมพิวเตอร์ของคุณเอง

อย่างไรก็ตาม หากใบรับรองหมดอายุแล้ว คุณจะต้องดำเนินการดังต่อไปนี้ เข้าร่วมด้วยตนเอง ไปที่จุดลงทะเบียนเดิมพร้อมกับบัตรหรืออุปกรณ์เข้ารหัสลับของคุณที่เก็บใบรับรองที่หมดอายุไว้ ยืนยันตัวตนของคุณ และขอออกใบรับรองใหม่ ซึ่งคุณสามารถส่งออกในรูปแบบ .pfx หรือ .p12 เพื่อนำเข้าในที่ที่คุณต้องการได้อีกครั้ง

ในเบราว์เซอร์เช่น เอดจ์หรือโครมกระบวนการนำเข้าจะดำเนินการผ่านทาง ที่เก็บใบรับรอง Windowsจากเมนูการตั้งค่าความเป็นส่วนตัวและความปลอดภัย คุณสามารถเปิดตัวจัดการใบรับรอง เลือกแท็บส่วนบุคคล และนำเข้าไฟล์ .pfx หรือ .p12 ได้ ตัวช่วยสร้างจะขอรหัสผ่านของคอนเทนเนอร์และเสนอให้ทำเครื่องหมายคีย์เป็นคีย์ที่สามารถส่งออกได้สำหรับการสำรองข้อมูลในอนาคต

หากคุณมีไฟล์ .cer ที่ไม่มีคีย์ส่วนตัว (ไอคอนใบรับรองที่ไม่มีคีย์) แทนที่จะเป็นไฟล์ .pfx ไฟล์นั้นจะมีประโยชน์เพียงแค่... ติดตั้งใบรับรองสาธารณะ (จะปรากฏอยู่ภายใต้หัวข้อ “บุคคลอื่น”) แต่ไม่ใช่สำหรับการลงนามหรือการตรวจสอบสิทธิ์ ในกรณีนั้น คุณจะไม่สามารถดึงคีย์ส่วนตัวจากที่นั่นได้ และหากคุณไม่มีสำเนาที่ถูกต้องอื่น ทางเลือกเดียวคือการขอใบรับรองใหม่

รูปแบบเหล่านี้ถูกนำไปใช้ในใบรับรอง SSL ของเซิร์ฟเวอร์อย่างไร

ในการทำงานประจำวันกับเว็บเซิร์ฟเวอร์ VPNไม่ว่าจะใช้พร็อกซีหรือแอปพลิเคชัน Java รูปแบบใบรับรองที่ใช้จะแตกต่างกันไปตามระบบและประเภทของการติดตั้ง การตั้งค่า Apache บน Linux จะไม่เหมือนกับการตั้งค่า IIS บน Windows หรือ Tomcat บน Java

ในสภาพแวดล้อม Unix/Linux (เช่น Apache, Nginx, HAProxy เป็นต้น) เป็นเรื่องปกติที่จะทำงานร่วมกับ ไฟล์ PEM ไฟล์แยกกัน: ไฟล์หนึ่งสำหรับคีย์ส่วนตัว (.key) อีกไฟล์หนึ่งสำหรับใบรับรองเซิร์ฟเวอร์ (.crt หรือ .cer) และบางครั้งอาจมีอีกไฟล์หนึ่งที่มีสตริง CA ระดับกลาง ไฟล์ทั้งหมดนี้จะถูกอ้างอิงในการตั้งค่าเซิร์ฟเวอร์เพื่อสร้าง TLS

บนแพลตฟอร์ม Windows (IIS, บริการเดสก์ท็อประยะไกล ฯลฯ) เป็นเรื่องปกติมากที่จะถูกขอให้ระบุข้อมูลต่อไปนี้ .pfx หรือ .p12 ประกอบด้วยทั้งใบรับรอง กุญแจส่วนตัว และห่วงโซ่ใบรับรอง ตัวช่วยในการนำเข้าจะจัดการจัดเก็บแต่ละส่วนลงในที่จัดเก็บที่เหมาะสมโดยอัตโนมัติ คุณจึงไม่ต้องกังวลเกี่ยวกับรายละเอียดภายใน

ในสภาพแวดล้อม Java (Tomcat, แอปพลิเคชันที่มีคีย์สโตร์ของตัวเอง) สโตร์ประเภท เจเคเอส หรือ พีเคซีเอส#12ในหลายกรณี ไฟล์ .pfx จะถูกนำเข้าโดยตรง หรือใบรับรอง .p7b จะถูกใช้เพื่อกำหนดค่าห่วงโซ่ความเชื่อถือภายในคีย์สโตร์ ทั้งนี้ขึ้นอยู่กับเครื่องมือและเวอร์ชัน Java ที่ใช้

  AI สามารถสนทนาแยกแยะความจริงจากคำโกหกได้หรือไม่?

เมื่อคุณซื้อใบรับรอง SSL จากผู้ให้บริการภายนอก คุณอาจได้รับไฟล์หลายรูปแบบ เช่น ไฟล์ CRT + CA ในรูปแบบ PEM ไฟล์ .p7b ที่มีข้อความ หรือแม้แต่ไฟล์ .pfx ที่เตรียมไว้ล่วงหน้า สิ่งสำคัญคือต้องระบุประเภทไฟล์ที่ถูกต้อง กุญแจส่วนตัวอยู่ที่ไหน? (หากคุณนำติดตัวมาด้วยและไม่ได้ถูกสร้างขึ้นโดยเซิร์ฟเวอร์) และไฟล์ใดที่มีใบรับรองเซิร์ฟเวอร์และห่วงโซ่ใบรับรองระดับกลาง

ในแผงควบคุมโฮสติ้ง คุณมักจะถูกขอให้กรอกข้อมูลในช่องสำหรับ CRT, KEY และอาจรวมถึง CA หรือใบรับรองระดับกลาง หากคุณมีไฟล์ .pfx เท่านั้น คุณสามารถแปลงเป็น PEM โดยใช้ OpenSSL และแยกแต่ละบล็อกจากนั้น โดยคัดลอกอย่างระมัดระวังตั้งแต่ BEGIN ถึง END ของแต่ละประเภท

การแปลงรูปแบบใบรับรองด้วย OpenSSL

เมื่อคุณเข้าใจแล้วว่าไฟล์แต่ละประเภทคืออะไร ขั้นตอนต่อไปที่สมเหตุสมผลก็คือการเรียนรู้เกี่ยวกับไฟล์ประเภทอื่นๆ วิธีการแปลงพวกมัน เมื่อเซิร์ฟเวอร์หรือแอปพลิเคชันร้องขอรูปแบบที่แตกต่างจากรูปแบบที่ผู้ให้บริการอินเทอร์เน็ต (ISP) หรือหน่วยงานออกใบรับรอง (CA) กำหนด เครื่องมือมาตรฐานสำหรับกรณีนี้คือ OpenSSL ซึ่งมีอยู่ในระบบปฏิบัติการ Linux ส่วนใหญ่ และสามารถติดตั้งบน Windows ได้เช่นกัน

ตัวอย่างเช่น หากคุณมีใบรับรองใน DER (.der, .cer) และหากคุณต้องการแปลงเป็น PEM คำสั่งเดียวที่นำไฟล์ไบนารีนั้นมาเข้ารหัสใหม่เป็น Base64 พร้อมส่วนหัวที่เหมาะสมก็เพียงพอแล้ว ในทำนองเดียวกัน คุณสามารถแปลง PEM เป็น DER ได้หากระบบของคุณรองรับเฉพาะไฟล์ไบนารีเท่านั้น

ด้วยไฟล์ PKCS#7 (.p7b) คุณสามารถใช้ OpenSSL เพื่อ ดึงใบรับรองออกมา ในรูปแบบ PEM พร้อมคำสั่งง่ายๆ ที่พิมพ์ใบรับรองที่บรรจุอยู่และบันทึกไว้ในไฟล์ข้อความ จากนั้น คุณสามารถแยกบล็อก BEGIN/END CERTIFICATE ต่างๆ ออกได้หากต้องการไฟล์แยกต่างหาก

ในกรณีของ PKCS#12 (.pfx, .p12) OpenSSL อนุญาตให้คุณแปลงคอนเทนเนอร์เป็นไฟล์ PEM ที่มีคีย์ส่วนตัวและใบรับรองทั้งหมด ในระหว่างกระบวนการ คุณจะถูกขอให้ป้อนรหัสผ่านของคอนเทนเนอร์ และสามารถเลือกได้ว่าจะเข้ารหัสคีย์ส่วนตัวไว้หรือแสดงเป็นข้อความธรรมดาภายในไฟล์ PEM ขึ้นอยู่กับการใช้งานที่ต้องการ

การแปลงประเภทนี้ทำให้เกิดสถานการณ์ต่างๆ เช่น การอัปโหลดไฟล์ .pfx ไปยังเซิร์ฟเวอร์ Linux แปลงเป็น PEM แล้วจึง... แยก CRT และ KEY ออกจากกัน เพื่อกรอกแบบฟอร์มการติดตั้ง SSL ที่ไม่รองรับคอนเทนเนอร์ PKCS#12 โดยตรง

นอกเหนือจากการแปลง DER เป็น PEM, PEM เป็น PKCS#7, PKCS#7 เป็น PKCS#12 และ PKCS#12 เป็น PEEM โดยตรงแล้ว ยูทิลิตี้เดียวกันนี้ยังสามารถสร้าง CSR จัดการคีย์ ตรวจสอบใบรับรอง และตรวจสอบวันหมดอายุได้ ทำให้เป็นเครื่องมือพื้นฐานในสภาพแวดล้อมใดๆ ที่ทำงานกับใบรับรอง

ประเภทของใบรับรองดิจิทัลและขอบเขตการใช้งาน

นอกเหนือจากรูปแบบไฟล์แล้ว การทำความเข้าใจเกี่ยวกับเรื่องอื่นๆ ให้ชัดเจนก็เป็นประโยชน์เช่นกัน ประเภทของใบรับรอง ขึ้นอยู่กับการใช้งานหรือประเภทของหน่วยงานที่พวกเขาเป็นตัวแทน เนื่องจากสิ่งเหล่านั้นมีผลต่อวิธีการจัดการการสำรองข้อมูล การต่ออายุ และการติดตั้ง

ในระดับกฎระเบียบของยุโรป (ระเบียบ eIDAS) มีการแบ่งแยกความแตกต่างระหว่าง ใบรับรองอิเล็กทรอนิกส์ "แบบง่าย" และใบรับรองคุณวุฒิบัตรแบบแรกนั้นตรงตามข้อกำหนดพื้นฐานในการระบุตัวตนและการออกบัตร ในขณะที่บัตรแบบหลังนั้นต้องการกระบวนการตรวจสอบตัวตนที่เข้มงวดกว่า และเงื่อนไขทางเทคนิคและองค์กรที่เข้มงวดกว่าจากผู้ให้บริการ ตัวอย่างที่ชัดเจนในสเปนคือบัตรประจำตัวประชาชนอิเล็กทรอนิกส์ (DNIe)

ถ้าเราดูว่าใครเป็นผู้ถือครอง เราก็จะมีใบรับรองต่างๆ ได้ บุคคลธรรมดา นิติบุคคล หรือหน่วยงานที่ไม่มีสถานะทางนิติบุคคลแต่ละแบบใช้สำหรับลงนามหรือรับรองความถูกต้องในด้านต่างๆ กัน ได้แก่ ขั้นตอนส่วนบุคคล การทำธุรกรรมในนามของบริษัท หรือภาระผูกพันด้านภาษี ตามลำดับ

ในโลกของเว็บเซิร์ฟเวอร์ ตระกูลใบรับรองที่เป็นที่รู้จักมากที่สุดคือตระกูล... ใบรับรอง SSL/TLSใบรับรองเหล่านี้จะถูกติดตั้งบนเซิร์ฟเวอร์เพื่อเข้ารหัสช่องทางการสื่อสารกับผู้ใช้ โดยมีหลายประเภท เช่น ใบรับรองโดเมนเดียว ใบรับรองแบบไวด์การ์ด และใบรับรองหลายโดเมน (SAN) ซึ่งแตกต่างกันในจำนวนชื่อโดเมนที่ครอบคลุมและระดับการตรวจสอบความถูกต้อง

ไม่ว่าจะเป็นประเภทใดก็ตาม ใบรับรองเหล่านี้ทั้งหมดสามารถถูกจัดเก็บและเผยแพร่ในรูปแบบเดียวกันได้ ได้แก่ ไฟล์ .cer, .crt, .pem, .p7b หรือคอนเทนเนอร์ .pfx/.p12 ขึ้นอยู่กับระบบที่จะใช้งานและวิธีการที่เลือกใช้ในการขนส่งหรือสำรองข้อมูล

ใบรับรองดิจิทัลมีประโยชน์อย่างมหาศาล: พวกเขารับประกันความเป็นส่วนตัวและความถูกต้อง ในด้านการสื่อสาร เทคโนโลยีเหล่านี้ช่วยให้สามารถลงลายมือชื่ออิเล็กทรอนิกส์ที่ถูกต้องตามกฎหมาย ลดความซับซ้อนของขั้นตอนการบริหารและการค้า และทำให้บริการเครือข่ายหลายบริการสามารถทำงานได้อย่างปลอดภัยโดยที่ผู้ใช้ไม่ต้องกังวลเกี่ยวกับรายละเอียดทางด้านการเข้ารหัส

ณ จุดนี้ เป็นที่ชัดเจนแล้วว่านามสกุลไฟล์ เช่น .pfx, .p12, .cer หรือ .crt เป็นเพียงวิธีการบรรจุสิ่งเดียวกันในรูปแบบต่างๆ นั่นคือ ใบรับรอง X.509, คีย์ส่วนตัว และในกรณีที่เกี่ยวข้อง ห่วงโซ่ความเชื่อถือ ซึ่งขึ้นอยู่กับสภาพแวดล้อม โดยอาจถูกแสดงในรูปแบบข้อความ Base64, ไบนารี DER หรือคอนเทนเนอร์ PKCS เพื่ออำนวยความสะดวกในการติดตั้งและใช้งาน การขนส่งระหว่างระบบ.

วิธีการจัดการใบรับรองดิจิทัลในเว็บเบราว์เซอร์ที่แตกต่างกัน
บทความที่เกี่ยวข้อง:
วิธีการจัดการใบรับรองดิจิทัลในเว็บเบราว์เซอร์ที่แตกต่างกัน