Let’s Encrypt kullanarak wildcard sertifika oluşturabiliyoruz. Normal şartlarda sertifika oluştururken http://domain.com/.well-known altında bir dosya oluşturularak o alan adının sahibi doğrulanıyor. Fakat wildcard sertifika icin işler değişiyor. Bazı dns kayıtları girmemiz gerekiyor. Bunu kendimiz yapabileceğimiz gibi bu işi otomatize eden scriptler de kullanabiliyoruz.

Ben dns kayıtlarını kendim gireceğim şekilde sertifikayı oluşturacağım.

Sertifikayı oluşturmak için certbot kullanıyorum. Aşağıdaki gibi bir komut kullanarak sertifikayı oluşturabiliriz.

certbot-auto certonly \
    --manual \
    --preferred-challenges=dns \
    --agree-tos \
    -d *.domain.com -d domain.com

domain.com: kullanacağımız domain için
*.domain.com: 1. seviye wildcard sertifika için

Ben ilk denememde parametre olarak sadece *.domain.com vermemin yeterli olacağını düşünmüştüm, fakat bu durumda domain.com sertifika içine eklenmiyor. Bu nedenle sub.domain.com için sertifika geçerli olurken domain.com için hala sertifikamız olmuyor. Aynı şekilde sertifika sub.sub.domain.com için de geçerli olsun istiyorsak *.sub.domain.comu da eklememiz gerekmekte.

Sertifika oluşturmak için komutu çalıştırdımızda kaç adet domain girmişsek bizden okadar TXT kaydı girmemiz istenecek. Zaten interaktif olarak certbot bizi yönlendirecektir.

_acme-challenge.domain.com. IN TXT some-hash
_acme-challenge.sub.domain.com. IN TXT some-hash

Bu yöntemin kötü yani her 3 ayda bir benzer işlemleri tekrar tekrar yapmamız gerekmesi. Eğer dns kayıtlarınızı bir API yada script ile değiştirebiliyorsanız bunu otomatize edebilirsiniz. Mesela bu yazıda bunu nasıl yapabileceğiniz anlatılıyor. Siz de benzer birşey kullanabilirsiniz. Benim böyle bir ihtiyacım kalmadığı için kullanmadım.