Terraform ile altyapıyı kodla tanımlarken sertifikalar da bu sürecin parçası olabilir. İki yaygın senaryo vardır: bulut sağlayıcının yönettiği sertifikaları tanımlamak veya kendi anahtar/CSR'ınızı üretip dışarıda imzalatmak.
Anahtar ve CSR Üretimi
hashicorp/tls sağlayıcısı anahtar ve CSR üretebilir:
resource "tls_private_key" "site" {
algorithm = "RSA"
rsa_bits = 2048
}
resource "tls_cert_request" "site" {
private_key_pem = tls_private_key.site.private_key_pem
subject {
common_name = "www.ornek.com"
}
dns_names = ["www.ornek.com", "ornek.com"]
}
Uyarı: tls_private_key ile üretilen anahtar Terraform state dosyasında düz metin olarak saklanır. State'i şifreli uzak bir arka uçta (ör. erişimi kısıtlı nesne depolama) tutun ve herkese açmayın.
Bulut Sertifikaları
- AWS:
aws_acm_certificatekaynağı DNS doğrulamasıyla ACM sertifikası oluşturur; doğrulama kayıtlarınıaws_route53_recordile bağlayabilirsiniz. - Dışarıdan alınmış sertifika: Aynı kaynakla
private_key,certificate_bodyvecertificate_chainverilerek içe aktarılabilir.
İyi Uygulamalar
- Sertifika ve anahtar değerlerini
sensitive = trueolarak işaretleyin. - Yenilemede kesinti olmaması için ilgili kaynaklarda
lifecycle { create_before_destroy = true }kullanın. - Değişiklikleri uygulamadan önce
terraform plançıktısını inceleyin.
Doğrulama
Uygulamadan sonra alan adını SSL kontrol aracıyla sınayın. Üretim sertifikası almak için SSL sertifikaları sayfasına bakabilirsiniz; CSR'ı Terraform dışında hazırlamak isterseniz CSR oluşturucu da kullanılabilir.