Bagaimana cara membuat CA Boneka dan sertifikat secara manual?

13

Saya bertanya-tanya bagaimana cara manual (menggunakan openssl bukan perintah ca boneka) membuat CA yang dapat digunakan oleh Puppet? Tujuannya adalah untuk pembuatan skrip CA seperti itu untuk menyebarkan mereka pada beberapa puppetmasters, daripada membuat sertifikat melalui mereka melalui perintah puppet cert.

Ada ide tentang cara melakukannya? Saya hanya dapat menemukan sesuatu seperti itu: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain/HowTo/Set_up_a_standalone_puppetmaster tetapi gagal berfungsi - setelah membuat CA dan sertifikat klien dan menerapkannya pada puppetmaster, ia mengeluh dengan:

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
SpankMe
sumber
Terima kasih, tetapi sayangnya, hanya mengatakan itu mungkin, tanpa menunjukkan caranya. Selain itu, ini mengacu pada versi Wayang yang cukup lama.
SpankMe
@SpankMe Kenapa tidak pakai saja puppet cert generate?
Shane Madden
3
@Shane Karena saya harus membungkus perintah sistem dalam skrip dengan objek Popen, memvalidasi outputnya dengan parsing teks ... Ini jauh lebih fleksibel dan 'halal' daripada hanya menggunakan perpustakaan openssl, dan selain itu memerlukan instalasi boneka di server , di mana seharusnya tidak dipasang - Saya hanya ingin pregenerate CA boneka dan sertifikat klien di sana, dan kemudian mendistribusikannya ke mesin yang tepat.
SpankMe

Jawaban:

1

Agen tidak menggunakan sertifikat klien pregenerated. Ini menciptakan CSR (dengan kunci baru) sebagai gantinya, sehingga master tidak akan mempercayai agen.

Pastikan file ditemukan di

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

identik dengan yang Anda pregenerasi dan mengenakan tuanmu juga. (Master tidak boleh menerima salinan kunci pribadi agen.)

Felix Frank
sumber
-1

Saya tidak tahu mengapa Anda membutuhkan skrip yang menghasilkan sertifikat? Begitu boneka menghasilkan sertifikat yang harus baik selama Anda memiliki klien (agen). Kecuali Anda menghapus klien dan membuat mesin klien baru dengan nama host yang sama. Jika Anda menjalankan boneka, itu akan mengeluh mengatakan bahwa ada ketidakcocokan kunci pribadi. Alih-alih, Anda harus membersihkan sertifikat pada server boneka kapan pun Anda tidak membutuhkan klien (mis. Anda menginstal ulang OS atau membuat ulang mesin virtual) dengan puppet cert clean testmenggunakan puppetmaster.

Nikolas Sakic
sumber