ในการเข้ารหัสคีย์สาธารณะของ RSA คีย์ส่วนตัวและสาธารณะในคู่นั้นมีความสัมพันธ์ทางคณิตศาสตร์ในการที่พวกเขาแบ่งปันโมดูลัสเดียวกัน ความยาวของโมดูลัสแสดงเป็นบิตคือความยาวหลัก
เพื่อยืนยันว่าคีย์ส่วนตัวที่ตรงกับคีย์สาธารณะที่มีอยู่ในคำขอลงนามใบรับรอง (CSR) และใบรับรองต้องยืนยันว่า moduli ของทั้งสองคีย์เหมือนกัน สามารถทำได้ตรงไปตรงมาด้วย OpenSSL บน Linux / Unix, macOS หรือ Windows (พร้อม ระบบย่อย Linux ของ Windows 10 or Cygwin) ดังนี้:
ในการดูแฮช md5 ของโมดูลัสของคีย์ส่วนตัว:
$ openssl rsa -noout -modulus -in mykey.key | opensl md5
หากต้องการดูแฮช md5 ของโมดูลัสของ CSR:
$ openssl req -noout -modulus - ในไฟล์csr.csr | opensl md5
ในการดูแฮช md5 ของโมดูลัสของใบรับรอง:
$ openssl x509 - ไม่มี -modulus - ใน mycert.crt | openssl md5
ถ้าแฮชทั้งสามตรงกัน CSRใบรับรองและคีย์ส่วนตัวเข้ากันได้ คุณสามารถใช้ได้ diff3
เพื่อเปรียบเทียบ moduli จากทั้งสามไฟล์ในครั้งเดียว:
$ openssl req -noout -modulus - ในไฟล์csr.csr > csr-mod.txt $ openssl x509 -noout -modulus -in mycert.crt> cert-mod.txt $ openssl rsa -noout -modulus -in mykey.key> privkey-mod.txt $ diff3 csr-mod.txt ใบรับรอง-mod.txt privkey-mod.txt
หากทั้งสามไฟล์เหมือนกัน diff3
จะไม่มีผลผลิต หากคุณต้องการเปรียบเทียบสองไฟล์เท่านั้น (เช่นใบรับรองและรหัสส่วนตัว) คุณสามารถใช้ diff
:
$ diff cert-mod.txt privkey-mod.txt
อีกครั้ง diff
จะไม่สร้างผลลัพธ์หากไฟล์เหมือนกัน