จะสร้าง Puppet CA และใบรับรองด้วยตนเองได้อย่างไร


13

ฉันสงสัยว่าวิธีการด้วยตนเอง (ใช้ openssl แทนคำสั่ง puppet ca) สร้าง CA ที่ Puppet ใช้งานได้หรือไม่ เป้าหมายคือการสร้างสคริปต์ของ CA ดังกล่าวเพื่อปรับใช้กับ puppetmasters หลาย ๆ ตัวแทนที่จะเป็นใบรับรองที่สร้างขึ้นโดยใช้คำสั่ง puppet cert

ความคิดใด ๆ เกี่ยวกับวิธีที่จะทำ? ฉันสามารถค้นพบบางสิ่งเช่นนั้นเท่านั้น: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain/HowTo/Set_up_a_standalone_puppetmasterแต่มันล้มเหลวในการทำงาน - หลังจากสร้าง CA และใบรับรองลูกค้าและใช้กับ puppetmaster

Feb 16 09:35:20 test puppet-master[81728]: Could not prepare for execution: The certificate retrieved from the master does not match the agent's private key.
Feb 16 09:35:20 test puppet-master[81728]: Certificate fingerprint: 4F:08:AE:01:B9:14:AC:A4:EA:A7:92:D7:02:E9:34:39:1C:5F:0D:93:A0:85:1C:CF:68:E4:52:B8:25:D1:11:64
Feb 16 09:35:20 test puppet-master[81728]: To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
Feb 16 09:35:20 test puppet-master[81728]: On the master:
Feb 16 09:35:20 test puppet-master[81728]:   puppet cert clean test
Feb 16 09:35:20 test puppet-master[81728]: On the agent:
Feb 16 09:35:20 test puppet-master[81728]:   rm -f /var/puppet/ssl/certs/test.pem
Feb 16 09:35:20 test puppet-master[81728]:   puppet agent -t


ขอบคุณ แต่น่าเสียดายที่มันบอกได้ว่ามันเป็นไปได้โดยไม่แสดงว่า นอกจากนี้แล้วมันหมายถึง Puppet รุ่นเก่ามาก
SpankMe

@SpankMe ทำไมไม่ใช้เพียงpuppet cert generate?
Shane Madden

3
@Shane เพราะฉันจะต้องห่อคำสั่งของระบบในสคริปต์ด้วยวัตถุ Popen ตรวจสอบความถูกต้องของผลลัพธ์โดยการแยกวิเคราะห์ข้อความ ... มีความยืดหยุ่นน้อยกว่าและ 'kosher' มากกว่าการใช้ไลบรารี openssl และนอกจากนั้นต้องมีการติดตั้งหุ่นกระบอกบนเซิร์ฟเวอร์ ที่ไม่ควรติดตั้ง - ฉันต้องการ pregenerate CA หุ่นเชิดและไคลเอนต์ certs ที่นั่นแล้วกระจายไปยังเครื่องที่เหมาะสม
SpankMe

คำตอบ:


1

เอเจนต์ไม่ได้ใช้ใบรับรองไคลเอ็นต์ที่สร้างไว้ล่วงหน้า มันสร้าง CSR (พร้อมคีย์ใหม่) แทนดังนั้นมาสเตอร์จะไม่เชื่อถือเอเจนต์

ตรวจสอบให้แน่ใจว่าไฟล์ที่พบใน

`puppet agent --configprint ssldir`/{certs,private_keys}/`puppet agent --configprint certname`

เหมือนกันกับรุ่นก่อนที่คุณใส่ไว้แล้วสวมใส่เจ้านายของคุณเช่นกัน (ต้นแบบไม่ควรได้รับสำเนาของคีย์ส่วนตัวของตัวแทน)


-1

ฉันไม่รู้ว่าทำไมคุณถึงต้องการสคริปต์ที่สร้าง certs? เมื่อหุ่นสร้างใบรับรองที่ควรจะดีตราบเท่าที่คุณมีลูกค้า (ตัวแทน) นอกจากคุณจะลบไคลเอนต์และสร้างเครื่องไคลเอนต์ใหม่ด้วยชื่อโฮสต์เดียวกัน หากคุณเรียกใช้หุ่นกระบอกมันจะบ่นว่ามีคีย์ส่วนตัวไม่ตรงกัน แต่คุณควรล้างใบรับรองบนเซิร์ฟเวอร์ puppet ทุกครั้งที่คุณไม่ต้องการไคลเอนต์ (เช่นคุณติดตั้งระบบปฏิบัติการใหม่หรือสร้างเครื่องเสมือน) ด้วยpuppet cert clean testpuppetmaster


-1

กรุณาอ้างอิง URL นี้ URL นี้อาจช่วยแก้ปัญหาของคุณได้ที่ https://docs.puppet.com/puppet/5.0/ssl_regenerate_certificates.html


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