ใน Keychain Access บน OS X ค้นหาการจับคู่กุญแจสาธารณะและคีย์ส่วนตัว


14

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


คุณสามารถหาวิธีแก้ปัญหานี้ได้หรือไม่? ฉันมีปัญหาเดียวกันและดูเหมือนไม่สามารถหาคำตอบได้
Axeva

ไม่ฉันไม่ได้ ทางออกที่ดีที่สุดที่ฉันพบคือให้ชื่อเฉพาะกับพวกเขามากขึ้นเพื่อเริ่มต้นด้วยความโชคร้าย
ACBurk

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

คำตอบ:


12

ฉันเดาว่าคุณสามารถแก้ไขปัญหาของคุณได้เนื่องจากเป็นหัวข้อเก่า แต่ฉันแค่เขียนคำตอบสำหรับการอ้างอิงในอนาคต

แนวคิดพื้นฐานคือการส่งออกคีย์ส่วนตัวและสาธารณะของคุณและใช้ openssl เพื่อดูโมดูลัสของพวกเขา การจับคู่คีย์ส่วนตัว / สาธารณะจะมีโมดูลัสเดียวกัน

นี่คือวิธีดูโมดูลัสของคีย์ส่วนตัว:

  1. ใน Keychain Access ส่งออกคีย์ส่วนตัวของคุณและเลือกรูปแบบไฟล์ "Personal Information Exchange (.p12)" สิ่งนี้จะสร้างไฟล์. p12

  2. เรียกใช้เทอร์มินัลและใช้ openssl เพื่อแปลงไฟล์. p12 ของคุณเป็นไฟล์. pem:

    openssl pkcs12 -in key.p12 -out key.pem -nodes
    
  3. ใช้ openssl เพื่อดูโมดูลัสของคีย์ส่วนตัว pem:

    openssl rsa -in key.pem -modulus -noout
    

นี่คือวิธีการดูโมดูลัสของกุญแจสาธารณะ:

  1. ใน Keychain Access ส่งออกกุญแจสาธารณะของคุณและเลือกรูปแบบไฟล์ "Privacy Enhanced Mail (.pem)" สิ่งนี้จะสร้างไฟล์. pem

  2. ไฟล์. pem นี้เป็นไฟล์ PKCS # 1 PEM (ที่มีส่วนหัว-----BEGIN RSA PUBLIC KEY-----) ในขณะที่ openssl สามารถอ่านได้เฉพาะ PKCS # 8 PEM (ที่มีส่วนหัว-----BEGIN PUBLIC KEY-----) ดังนั้นเปิดพับลิกคีย์สาธารณะของคุณใน TextEdit และลบRSAบิตออกจากส่วนหัวและส่วนท้ายและบันทึกการเปลี่ยนแปลง

  3. ใช้ openssl เพื่อดูโมดูลัสของกุญแจสาธารณะ pem:

    openssl rsa -pubin -in pubkey.pem -modulus -noout
    

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

openssl rsa -in key.pem -pubout -out pubkey.pem

1
ขอบคุณคำถามเก่า ๆ แต่ดูเหมือนจะมีปัญหาอยู่เสมอดังนั้นจึงเป็นเรื่องดีที่ในที่สุดก็มีทางออกที่ดี
ACBurk

1
ยอดเยี่ยมสิ่งที่ฉันกำลังมองหา ขอบคุณสำหรับคำอธิบายที่ดี
Baza207

ฉันเพิ่งถามคำถามนี้อีกครั้งใน SuperUser แต่โชคดีที่ได้ค้นพบคำตอบนี้ได้รับแล้ว .. +1 รอบ ๆ
Tom Pace
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.