Chef ile sertifika yönetimi, dosyaları kaynak (resource) olarak tanımlayıp servis yeniden yükleme işlemini otomatik tetiklemeye dayanır. Hassas veriler için şifreli veri çantaları (data bag) kullanılır.
Basit Bir Recipe
ssl = data_bag_item('ssl', 'ornek', IO.read('/etc/chef/encrypted_data_bag_secret'))
file '/etc/ssl/private/ornek.key' do
content ssl['key']
owner 'root'
mode '0600'
sensitive true
notifies :reload, 'service[nginx]'
end
file '/etc/ssl/ornek-fullchain.pem' do
content ssl['cert']
mode '0644'
notifies :reload, 'service[nginx]'
end
sensitive true ayarı, içeriğin Chef çıktısına ve loglara yazılmasını engeller.
Gizli Bilgi Yönetimi
- Şifreli data bag:
knife data bag create ssl ornek --secret-file ...ile oluşturulur. - Chef Vault: Değeri yalnızca belirli düğümlerin çözebilmesini sağlar.
- Anahtarı cookbook dosyalarına eklemeyin; sürüm kontrolüne girmesini önleyin.
Yenileme Akışı
- Yeni sertifika onaylanınca data bag öğesini güncelleyin.
- Düğümlerde
chef-clientçalışınca dosya değişir ve servis otomatik yeniden yüklenir. - Son kullanma tarihini izlemek için basit bir kontrol betiği veya Chef'in rapor mekanizması kullanılabilir.
Sık Hatalar
- Sertifika ile ara sertifikaların doğru sırada birleştirilmemesi (önce sunucu sertifikası, ardından ara sertifikalar).
- Anahtar dosyasına geniş izin verilmesi.
- Servisin yeniden yüklenmeyip eski sertifikayla çalışmaya devam etmesi.
Sertifika seçimi için SSL sertifikaları, CSR hazırlığı için CSR oluşturucu sayfasına göz atın.