จะปฏิเสธคำขอใบรับรอง Puppet Master ได้อย่างไร


13

ฉันมีคำขอจากตัวแทนที่มีชื่อโฮสต์ไม่ดี ฉันได้แก้ไขสิ่งนี้แล้ว แต่ยังคงมีคำขอที่ค้างพร้อมชื่อโฮสต์ที่ไม่ดี

ฉันเหนื่อย:

$puppet cert list
  "wrong.host.name" (SHA256) 8E:...:51

$ puppet cert revoke wrong.host.name
Error: Could not find a serial number for wrong.host.name

$ puppet cert clean wrong.host.name
Error: Could not find a serial number for wrong.host.name

วิธีที่เหมาะสมในการกำจัดพวกเขาคืออะไร?

คำตอบ:


23

การใช้caงานได้ดีขึ้นและสามารถลบใบรับรองได้ในขั้นตอนเดียวไม่เหมือนcertกัน ที่สำคัญไม่ได้ทำให้คุณลงชื่อใบรับรองที่ไม่ถูกต้องชั่วคราว

$ puppet ca destroy wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'
Deleted for wrong.host.name: Puppet::SSL::CertificateRequest

puppet caคำสั่งเมื่อเร็ว ๆ นี้ได้รับการคัดค้านดังนั้นในบางจุดก็อาจจะหายไป แต่ไม่มีคำสั่งเทียบเท่า มีข้อผิดพลาดที่ยื่นซึ่งคุณสามารถลงคะแนนได้ถ้าคุณคิดว่ามันค่อนข้างโง่ที่จะลบคำสั่งนี้โดยไม่มีการแทนที่


นี่คือคำตอบที่ถูกต้อง คำแนะนำทั้งหมดที่ได้รับจากคำตอบที่ยอมรับนั้นไม่ได้ผลหรือคุณต้องลงชื่อใบรับรองที่คุณรู้ว่าไม่ดี
tedivm

@tedivm พูดอะไร ดังนั้น: +1
gf_

ใช้งานได้ แต่ถูกทำเครื่องหมายว่าเลิกใช้แล้ว ใครรู้วิธีการใหม่คืออะไร?
สวิส

@Swiss คุณมีลิงก์ไปยังเอกสารบางรายการที่แสดงว่าเลิกใช้หรือไม่
Nick

1
puppet cert cleanตอนนี้ทำงานเพื่อลบคำขอ ดูรายงานข้อผิดพลาดที่เชื่อมโยง
7yl4r

3

โซลูชันที่เป็นไปได้ 1:

การใช้puppet cert cleanต้นแบบหุ่นเชิดเป็นวิธีที่เหมาะสม อย่างไรก็ตามเนื่องจากคุณได้รับข้อผิดพลาดคุณอาจมีใบรับรองที่ไม่ดี

ลองทำสินค้าคงคลังอีกครั้งจากนั้นทำความสะอาด:

$ puppet cert reinventory
$ puppet cert clean --all

หมายเหตุ: ตัวอย่างของฉันใช้การ--allตั้งค่าสถานะซึ่งจะล้างใบรับรองทั้งหมดที่ลงชื่อและไม่ได้ลงชื่อ reinventoryนอกจากนี้ทราบว่าต้นแบบหุ่นควรจะหยุดก่อนที่จะทำงาน

ที่มา: http://docs.puppetlabs.com/references/3.6.2/man/cert.html

โซลูชันที่เป็นไปได้ 2:

$ puppet cert sign wrong.host.name
Notice: Signed certificate request for wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'

$ puppet cert clean wrong.host.name
Notice: Revoked certificate with serial 87
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/ca/signed/wrong.host.name.pem'
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/certs/wrong.host.name.pem'

โซลูชันที่เป็นไปได้ 3:

ครั้งแรก: บนเซิร์ฟเวอร์

$ puppet cert --revoke wrong.host.name
$ puppet cert --clean wrong.host.name

ที่สอง: บนไคลเอนต์

$ rm -rf /usr/lib/puppet/ssl
$ puppet agent --server [puppetmaster domain name] --waitforcert 60

ที่สาม: บนเซิร์ฟเวอร์ (ปรับตามความจำเป็น)

$ puppet cert --list (you should see your host)
$ puppet cert --sign wrong.host.name

ตรวจสอบอีกครั้งว่าลูกค้าของคุณสามารถเข้าถึง [ชื่อโดเมน puppetmaster]

ที่มา: /server/574976/puppet-trying-to-configure-puppet-client-for-first-use-but-got-some-problems-wi


ขอบคุณฉันพยายามreinventoryแล้วclean wrong.host.nameเพราะฉันไม่ต้องการเพิกถอน certs ที่ดีเช่นกัน แต่ฉันยังคงได้รับข้อผิดพลาดหมายเลขซีเรียล
Louis

--allดีจับบน ฉันเพิ่งเพิ่มการอัปเดตที่คุ้มค่ากับการยิง
tbenz9

เยี่ยมมากหลังจากpuppet cert sign wrong.host.nameใช้cleanงานเสร็จ ดูเหมือนผิดที่ฉันต้องลงชื่อก่อน
Louis

1
อย่าลืมรีสตาร์ทบริการหลักของหุ่นเชิดหลังจากทำความสะอาดใบรับรองใด ๆ
Robert Fey

1
FYI คำตอบอื่น ๆ ที่เป็นมากดีกว่านี้ หากคุณทำตามคำแนะนำ OPs คุณจะต้องเรียกใช้คำสั่งที่ไม่ทำงาน (เช่นคำสั่ง clean) หรือคุณจะลงชื่อในใบรับรองที่คุณรู้ว่าไม่ดี หากคุณทำตามคำแนะนำด้านล่างและเพียงใช้puppet ca destroy wrong.host.nameคุณไม่จำเป็นต้องแนะนำความเสี่ยงด้านความปลอดภัยให้กับโครงสร้างพื้นฐานของคุณ
tedivm

2

นี่คือวิธีที่ฉันทำ

[root@puppetmc ca]# puppet cert clean sparrow.home
Error: Could not find a serial number for sparrow.home
[root@puppetmc ca]# cat inventory.txt 
0x0002 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=puppetmc.home
0x0003 2015-05-17T23:25:33GMT 2020-05-16T23:25:33GMT /CN=sparrow.rospop.com
0x0004 2015-05-18T00:53:18GMT 2020-05-17T00:53:18GMT /CN=puppetmc.home
0x0005 2015-05-18T02:18:12GMT 2020-05-17T02:18:12GMT /CN=sparrow.rospop.com
[root@puppetmc ca]# vi  inventory.txt 

เพิ่มบรรทัดด้านล่างไปยัง inventory.txt:

0x0001 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=sparrow.home

จากนั้นเรียกใช้

[root@puppetmc ca]# puppet cert clean sparrow.home
Notice: Revoked certificate with serial 1
Notice: Removing file Puppet::SSL::CertificateRequest sparrow.home at '/var/lib/puppet/ssl/ca/requests/sparrow.home.pem'
Vince Bhebhe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.