กำลังตรวจสอบลายนิ้วมือของใบรับรอง SSL หรือไม่


26

ฉันกำลังเล่นกับตัวแทน Puppet และ Puppet master และฉันสังเกตว่ายูทิลิตีใบรับรอง Puppet ให้ลายนิ้วมือสำหรับกุญแจสาธารณะของตัวแทนของฉันเมื่อได้รับการร้องขอให้ลงชื่อ

$ puppet cert list
  "dockerduck" (SHA256) 1D:72:C5:42:A5:F4:1C:46:35:DB:65:66:B8:B8:06:28:7A:D4:40:FA:D2:D5:05:1A:8F:43:60:6C:CA:D1:FF:79

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

ในตัวแทนหุ่นเชิดการsha256sumให้อะไรบางอย่างที่แตกต่างไปอย่างมาก:

$ sha256sum /var/lib/puppet/ssl/public_keys/dockerduck.pem
f1f1d198073c420af466ec05d3204752aaa59ebe3a2f593114da711a8897efa3

หากฉันจำได้อย่างถูกต้องใบรับรองจะให้ checksums ของกุญแจสาธารณะในไฟล์คีย์จริงด้วยตนเอง ฉันจะเข้าถึงลายนิ้วมือกุญแจได้อย่างไร


1
ลายนิ้วมือของใบรับรองไม่ใช่การแฮชของไฟล์ pem แต่จะคำนวณตามเขตข้อมูลเฉพาะในใบรับรองที่จัดเรียงในรูปแบบและคำสั่งซื้อที่เฉพาะเจาะจง
Dobes Vandermeer

คำตอบ:


39

ยูทิลิตีบรรทัดคำสั่ง OpenSSL สามารถใช้ในการตรวจสอบใบรับรอง (และคีย์ส่วนตัวและอื่น ๆ อีกมากมาย) ในการดูทุกสิ่งในใบรับรองคุณสามารถทำสิ่งต่อไปนี้

openssl x509 -in CERT.pem -noout -text

ในการรับลายนิ้วมือ SHA256 คุณต้องทำ:

openssl x509 -in CERT.pem -noout -sha256 -fingerprint

1
unable to load certificate 140640672884384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATEความคิดใด ๆ
Naftuli Kay

@NaftuliTzviKay บางทีพวกเขาอาจไม่อยู่ในรูปแบบ PEM ไฟล์มีลักษณะเป็นอย่างไร (หรือคุณสามารถสร้างแบบทดสอบที่คุณไม่ได้ใช้แล้วโพสต์ไว้ที่อื่นได้ไหม)
Derobert

นี่คือรหัสสาธารณะที่อ้างถึงในโพสต์ต้นฉบับ: pastebin.com/ae2Qtexc
Naftuli Kay

@NaftuliKay คุณต้องมีใบรับรองในรูปแบบของ pem
M_AWADI

9

วิธีที่ดีที่สุดในการยืนยันลายนิ้วมือของตัวแทนอย่างน้อยใน Puppet 3.6 คือการเรียกใช้คำสั่งต่อไปนี้ในตัวแทนของคุณ:

puppet agent --fingerprint
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.