Adım 05 · Devret
Onu sunucuya yönlendirin. Sonra az önce ne yayımladığınızı okuyun.
Devrin kendisi iki kayıt ve beş dakikadan ibarettir. İsim sunucularını kayıt kuruluşunda ayarlayın, sunucu için bir adres kaydı oluşturun, değişikliğin sicil kuruluşuna yayılmasını bekleyin ve bunu cevabı zaten bilen makineden değil, kendi ağınızın dışından doğrulayın. Kalan kırk dakikayı hak eden şey, devrin sonrasında görünür kıldığı her şeydir.
dig +short NS example.com @1.1.1.1 # the delegation as the world sees it, not your cache
dig +short A app.example.com # must return the VPS address before you deploy anything
dig +short CAA example.com # empty today; step 05 fills it in
dig +short DS example.com # non-empty only if DNSSEC is actually signed
Yetkili sunucuları kimin çalıştırdığı konusunda dürüst cevap, bu serinin genellikle verdiği cevap değildir. Kendi kendine barındırma, yetkili DNS'in kendi başınıza yapmanın genellikle daha kötü olduğu tek bileşenidir: ayrı ağlarda iki veya daha fazla sunucu ister, ana sunucunuzu çökerten tam da o kesinti sırasında çalışır durumda kalmak zorundadır, amplifikasyon amaçlı istismara uğramamak için sürekli özen gerektirir ve başarısız olduğunda her şey onunla birlikte başarısız olur — durumu onarmanıza olanak sağlayacak sertifika yenilemesi de dahil. Ayrıca kaçınmaya çalıştığınız türden bir ilişkilendirme de yaratır, çünkü iki proje arasında paylaşılan kendi kendine çalıştırılan bir isim sunucusu, bunları herkesin sorgulayabileceği veri kümelerinde kamuya açık şekilde birbirine bağlar. Anycast ağına sahip bir DNS operatörü kullanın, onu özellik listesine göre değil kimlik belgesi talep edip etmediğine göre seçin ve taşınmanın bir kazı çalışması değil bir yapıştırma işlemi olması için dışa aktarılmış bir bölge dosyası saklayın. Bu, seride yer alan özel özyinelemeli çözümleyiciden farklı bir iştir; o, ne aradığınızın günlüğünü kendi makinenize taşır ve yapmaya değer bir şeydir.
Şimdi de bu sayfadaki başka her şeyden daha fazla dikkatli kurulumu bozan sızıntı — çünkü sessizce ve dikkatinizi başka yere verdikten sonra devreye girer. Herkesin güvendiği bir otorite tarafından verilen her sertifika, sadece ekleme yapılabilen kamuya açık günlüklere gönderilir ve tarayıcılar bunlarda olmayan sertifikaları reddeder. Bu günlükler, hatalı verilmenin tespit edilebilir olması için vardır — ki bu gerçekten iyi bir şeydir — ve ücretsiz arama arayüzleri tarafından dizinlenirler. Sonuç olarak, sertifika talep ettiğiniz her ana bilgisayar adı — kimsenin tahmin edemeyeceğini düşündüğünüz staging., vpn., backup. ve idari ad da dahil — herkes için, sonsuza dek bir anahtar kelime araması kadar yakındır.
# every certificate ever issued under the zone, and every hostname inside each one
curl -s 'https://crt.sh/?q=%25.example.com&output=json' | jq -r '.[].name_value' | sort -u
Çözüm, bölge için tek bir wildcard sertifikadır; bu, altındaki her dahili ana bilgisayar adı için sunulur. Günlük kaydı böylece sadece bölge için bir sertifikanın var olduğunu kaydeder, içinde ne barındığı hakkında hiçbir şey söylemez. Bunun maliyeti, bir wildcard'ın daha basit olan dosya tabanlı sınama yerine DNS tabanlı sınamayı gerektirmesidir — bu da sunucuda DNS operatörünüz için bir API token'ı demektir — kalıcı bir kamuya açık dahili adlandırma listesine karşı on dakikalık bir kurulum. Bir wildcard verin, onu ters proxy üzerinde tutun ve ana bilgisayar adı başına sertifika talep etmeyi bırakın.
İşi iki kayıt tamamlar. Bir CAA kaydı, ad için hangi sertifika otoritelerinin sertifika verebileceğini belirtir, böylece başka bir otorite tarafından yapılan hatalı bir verilme, sonradan tespit edilmek yerine kaynağında reddedilir. Ve DNSSEC, hem sicil kuruluşunuz hem de DNS operatörünüz destekliyorsa, yetki devrini imzalar; böylece bir çözümleyici sahte bir yanıtı gerçek olandan ayırt edebilir — bu, çoğu operatörde tek bir anahtar ve kayıt kuruluşunda tek bir kayıttır, ve dikkat edilmesi gereken tek şey, anahtarları yanlış yönetilen imzalı bir bölgenin arızalandığında bunu güvenli tarafta, yani tamamen erişilemez biçimde yapmasıdır.
; in the zone — only this authority may issue, and tell us if anyone tries
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:abuse@example.com"
Son olarak, kimsenin bir hata yapmasına gerek kalmadan iki bölmenin bire dönüştüğü yer olan ilişkilendirme katmanı. Pasif DNS veri kümeleri, hangi adların hangi adreslere ve ne zaman çözümlendiğini kaydeder; paylaşılan bir adres, paylaşılan bir isim sunucusu kümesi veya paylaşılan bir posta değişim sunucusu, başka hiçbir ortak noktası olmayan iki projeyi birbirine bağlamaya yeter. İki ad birbirinden bağımsız kalmak zorundaysa, ayrı sunuculara, ayrı isim sunucusu kümelerine ve ayrı posta yönlendirmesine ihtiyaçları vardır — ve kimsenin saymadığı küçük şeyler için de aynısı geçerlidir: her iki sitede de yeniden kullanılan bir analitik tanımlayıcı veya birebir aynı bir favicon gibi — ki bunların ikisi de isteyen herkes tarafından internet ölçeğinde aranabilir.