PKCS # 7 ไม่รวมส่วนไพรเวต (คีย์) ของคู่ใบรับรอง / ไพรเวตคีย์โดยทั่วไปจะใช้สำหรับการเผยแพร่ใบรับรอง (เช่นการตอบสนองต่อคำขอใบรับรอง PKCS # 10 ซึ่งเป็นวิธีการกระจาย S / MIME certs ใช้เพื่อเข้ารหัสข้อความหรือเพื่อตรวจสอบข้อความที่ลงนาม ฯลฯ ) มันเป็นสิ่งสำคัญที่ต้องจำไว้ว่ามันเป็นเพียงสำหรับใบรับรองซึ่งโดยรายการสาธารณะที่กำหนด
PKCS # 12 เป็นคอนเทนเนอร์สากลมากขึ้น - มีวัตถุประสงค์เพื่อจัดเก็บทั้งคีย์ส่วนตัวและใบรับรองสาธารณะด้วยกันเพื่อให้สามารถเคลื่อนย้ายได้ มันมีความสามารถในการป้องกันด้วยรหัสผ่านเพื่อให้การป้องกันคีย์บางอย่าง
PFX เป็นบรรพบุรุษของ PKCS # 12
คุณไม่สามารถ (ตามที่ Anitak ชี้) แปลงจาก PKCS # 7 เป็น PKCS # 12 โดยไม่มีข้อมูลเพิ่มเติม (ส่วนคีย์ส่วนตัว) เนื่องจาก PKCS # 7 ไม่มีข้อมูลทั้งหมด
Mark Sutton ได้ชี้ให้เห็นเหตุผลที่คุณไม่สามารถส่งออกเป็น PFX ได้ - ใบรับรองที่เป็นปัญหามีรหัสส่วนตัวของมันตั้งค่าสถานะเป็นไม่สามารถส่งออกได้ Cryptographic Service Provider (CSP) จะไม่อนุญาตให้ย้ายกุญแจนี้โดยเจตนา วิธีเดียวที่คุณจะได้รับคู่ใบรับรอง \ ที่ส่งออกได้คือถ้าใบรับรองต้นฉบับออกด้วยชุดแฟล็กที่ส่งออกได้ อาจเป็นไปได้ว่าไม่มีรหัสส่วนตัวที่เกี่ยวข้องกับใบรับรอง แต่ฉันสมมติว่าไม่ใช่กรณีที่นี่
มีบทสรุปที่ดีของต่าง ๆ เป็นประเภท PKCS วิกิพีเดีย
- วิธีที่ถูกต้องเท่านั้นอย่างน้อย ขึ้นอยู่กับ CSP \ Crypto Hardware อาจมีกลไกโดยเฉพาะอย่างยิ่งสำหรับซอฟต์แวร์ CSP เท่านั้น แต่เป็นพื้นที่สำหรับการวิจัยช่องโหว่ด้านความปลอดภัยเท่าที่ฉันกังวลไม่ใช่ผู้ดูแลระบบ