ความแตกต่างระหว่างไฟล์ cer, pvk และ pfx คืออะไร?


204

ความแตกต่างระหว่างไฟล์ cer, pvk และ pfx คืออะไร? นอกจากนี้ฉันจะเก็บไฟล์ใดไว้และฉันคาดหวังให้คู่ความของฉันเป็นใคร


นอกจากนี้[1] , [2] , [3]
Pacerier

คำตอบ:


143

Windows ใช้ส่วนขยาย. cer สำหรับใบรับรอง X.509 สิ่งเหล่านี้สามารถอยู่ใน "binary" (ASN.1 DER) หรือสามารถเข้ารหัสด้วย Base-64 และมีส่วนหัวและส่วนท้ายที่ใช้ (PEM) Windows จะรู้จักเช่นกัน ในการตรวจสอบความถูกต้องของใบรับรองคุณต้องตรวจสอบลายเซ็นของตนโดยใช้รหัสสาธารณะของผู้ออก ... ซึ่งก็คือใบรับรองอื่น

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

Windows ใช้. pvk สำหรับไฟล์รหัสส่วนตัว ฉันไม่แน่ใจว่า Windows มาตรฐาน (ถ้ามี) ติดตามสิ่งเหล่านี้ หวังว่าพวกเขาจะเป็นคีย์เข้ารหัส PKCS # 8 Emmanuel Bourgรายงานว่านี่เป็นรูปแบบที่เป็นกรรมสิทธิ์ บางเอกสารสามารถใช้ได้

คุณไม่ควรเปิดเผยรหัสส่วนตัวของคุณ สิ่งเหล่านี้มีอยู่ในไฟล์. pfx และ. pvk

โดยทั่วไปคุณแลกเปลี่ยนใบรับรอง (.cer) และใบรับรองของผู้ออกตราสารระดับกลาง (เช่นใบรับรองของ CA ทั้งหมดของคุณยกเว้น CA หลัก) กับบุคคลอื่น ๆ


7
ไฟล์ PVK ไม่ได้อยู่ใน PKCS # 8 แต่เป็นรูปแบบที่เป็นกรรมสิทธิ์ ดูdrh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg

ค้นหาโปรแกรมอรรถประโยชน์ pvk2pfx.exe ใน SDK windows
BozoJoe

@erickson จุดประสงค์ในการประดิษฐ์. pvk คืออะไร .pfx ไม่เพียงพอหรือ
Pacerier

@Pierier ใช่แล้ว. pfx ก็เพียงพอแล้ว ฉันไม่แน่ใจว่าประเด็นของ. pvk คืออะไร ฉันเดาได้แค่ว่ามันถูกคิดค้นในความไม่รู้
erickson

55

ในแพลตฟอร์ม Windows ประเภทไฟล์เหล่านี้ใช้สำหรับข้อมูลใบรับรอง ปกติใช้สำหรับใบรับรอง SSL และโครงสร้างพื้นฐานของคีย์สาธารณะ (X.509)

  • ไฟล์ CER: ไฟล์ CER ใช้เพื่อจัดเก็บใบรับรอง X.509 ปกติใช้สำหรับการรับรอง SSL เพื่อตรวจสอบและระบุความปลอดภัยของเว็บเซิร์ฟเวอร์ ไฟล์มีข้อมูลเกี่ยวกับเจ้าของใบรับรองและกุญแจสาธารณะ ไฟล์ CER สามารถเป็นแบบไบนารี (ASN.1 DER) หรือเข้ารหัสด้วย Base-64 พร้อมส่วนหัวและส่วนท้าย (PEM) Windows จะรับรู้รูปแบบใดรูปแบบหนึ่ง
  • ไฟล์ PVK: ย่อมาจากคีย์ส่วนตัว Windows ใช้ไฟล์ PVK เพื่อจัดเก็บคีย์ส่วนตัวสำหรับการลงชื่อรหัสในผลิตภัณฑ์ต่างๆของ Microsoft PVK เป็นรูปแบบที่เป็นกรรมสิทธิ์
  • ไฟล์ PFX รูปแบบการแลกเปลี่ยนส่วนบุคคลเป็นไฟล์ PKCS12 ข้อมูลนี้ประกอบด้วยข้อมูลการเข้ารหัสลับที่หลากหลายเช่นใบรับรองใบรับรองสิทธิ์ในเครือผู้ใช้ใบรับรองเชนและคีย์ส่วนตัว มันได้รับการป้องกันด้วยรหัสผ่านเพื่อเข้ารหัสคีย์ส่วนตัวให้เป็นส่วนตัวและรักษาความสมบูรณ์ของใบรับรองหลัก ไฟล์ PFX นั้นยังใช้ในผลิตภัณฑ์ต่างๆของ Microsoft เช่น IIS

สำหรับการเยี่ยมชมข้อมูลเพิ่มเติม: ไฟล์ใบรับรอง: .Cer x .Pvk x .Pfx


4
ไฟล์ Cer: .... "ไฟล์มีข้อมูลเกี่ยวกับเจ้าของใบรับรองและคีย์ใบรับรองสาธารณะและส่วนตัว" ... ไม่ถูกต้อง ดังที่ erickson ชี้ให้เห็นในคำตอบของเขา: มันมีข้อมูลเกี่ยวกับกุญแจสาธารณะเท่านั้น ไฟล์. cer ที่มีทั้งกุญแจส่วนตัวและกุญแจสาธารณะจะไร้ประโยชน์
thor_hayek

1
นี่เป็นสิ่งที่ผิด ไฟล์ .Cer ไม่มีคีย์ส่วนตัวใด ๆ โปรดปรับปรุงคำตอบของคุณ
ANewGuyInTown

36

นี่คือบันทึกย่อส่วนบุคคลที่มีความย่อแน่นสุดของฉันตราบใดที่หัวเรื่องนี้เกี่ยวข้องกับฉันในปัจจุบันสำหรับผู้ที่สนใจ:

  • ทั้งสองPKCS12และPEMสามารถเก็บโซ่ทั้งใบรับรอง: กุญแจสาธารณะ, คีย์ส่วนตัวและราก (CA) ใบรับรอง
  • .pfx == .p12 == " PKCS12 "
    • เข้ารหัสอย่างสมบูรณ์
  • .pem == .cer == .cert == " พีอีเอ็ม "
    • base-64 (สตริง) เข้ารหัสใบรับรอง X509 (ไบนารี) พร้อมส่วนหัวและส่วนท้าย
      • base-64นั้นเป็นเพียงสตริงของ "A-Za-z0-9 + /" ที่ใช้แทน 0-63, 6 บิตของไบนารีในเวลาตามลำดับบางครั้งมี 1 หรือ 2 "=" ตัวอักษรที่มาก สิ้นสุดเมื่อมีตัวเหลือ ("=" กำลัง "เติม / ขยะ / ละเว้น / ทิ้ง" อักขระ)
      • ส่วนหัวและท้ายกระดาษเป็นอะไรเช่น "----- BEGIN CERTIFICATE -----" และ "----- END CERTIFICATE -----" หรือ "----- BEGIN กุญแจส่วนตัวเข้ารหัสแล้ว --- - "และ" ----- สิ้นสุดคีย์ส่วนตัวเข้ารหัส ----- "
    • Windows รู้จัก. cer และ. cert เป็นไฟล์ใบรับรอง
  • .jks == "ที่เก็บคีย์ Java "
    • เป็นรูปแบบไฟล์เฉพาะ Java ที่ API ใช้
      • ไฟล์. p12 และ. pfx ยังสามารถใช้กับ JKS API ได้
  • " ร้านค้าที่เชื่อถือได้ " ประกอบด้วยใบรับรองสาธารณะ, เชื่อถือได้, รูท (CA)ในขณะที่ " ร้านค้าเอกลักษณ์ / คีย์ " มีใบรับรองส่วนตัว, ข้อมูลส่วนตัว ไฟล์ฉลาด แต่พวกเขาเหมือนกัน

ดังนั้น. pvk ถูกกำหนดไว้ที่ไหน?
zwcloud

@zwcloud ฉันให้สิ่งที่ฉันรู้ในเวลานั้น คำตอบอื่น ๆ ให้สิ่งนั้น
แอนดรู

18

จริง ๆ แล้วฉันเจอบางสิ่งเช่นนี้เมื่อไม่นานมานี้ ... ลองดูใน msdn (ดูคำตอบแรก)

สรุป:

.cer - ใบรับรองที่จัดเก็บในรูปแบบมาตรฐาน X.509 ใบรับรองนี้มีข้อมูลเกี่ยวกับเจ้าของใบรับรอง ... พร้อมกับกุญแจสาธารณะและกุญแจส่วนตัว

.pvk - ไฟล์ถูกใช้เพื่อจัดเก็บคีย์ส่วนตัวสำหรับการเซ็นชื่อรหัส นอกจากนี้คุณยังสามารถสร้างใบรับรองตามไฟล์คีย์ส่วนตัว. pvk

.pfx - ย่อมาจากรูปแบบการแลกเปลี่ยนส่วนบุคคล มันถูกใช้เพื่อแลกเปลี่ยนวัตถุสาธารณะและส่วนตัวในไฟล์เดียว ไฟล์ pfx สามารถสร้างได้จากไฟล์. cer นอกจากนี้ยังสามารถใช้ในการสร้างใบรับรองของผู้เผยแพร่ซอฟแวร์

ฉันสรุปข้อมูลจากหน้าเว็บตามข้อเสนอแนะจากความคิดเห็น


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

ฉันเห็นลิงก์นั้น แต่ฉันไม่ตอบคำถามอย่างเต็มที่
Jonathan Allen

15
นอกจากนี้ข้อมูลบางส่วนในลิงก์ยังไม่ถูกต้อง ตัวอย่างเช่นคุณไม่สามารถแยกคีย์ส่วนตัวออกจากใบรับรองได้ อย่างชัดเจน
erickson

ความคิดเห็นข้างต้นไม่เกี่ยวกับการแตกไฟล์ มันไม่สมเหตุสมผลที่จะมีคีย์ส่วนตัวในไฟล์. cer ไฟล์. cer ควรถูกแชร์กับโลกภายนอกดังนั้นมันจึงมีเฉพาะกุญแจสาธารณะเท่านั้น
Rajiv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.