---
title: 'Sertifika Otomasyonu'
source: 'https://academia.sh/tr/kurslar/sunucu-ve-sertlestirme/sertifika-otomasyonu'
course: 'Sunucu, Ağ ve Sertleştirme'
language: tr
updated: '2026-08-17T18:09:10+00:00'
license: 'CC BY-SA 4.0'
---

# Sertifika Otomasyonu

Yenileme akışının bir durum makinesi olarak yazılması ve ömür ile eşiğin taranması: erken eşiğin ürettiği on iki gereksiz yenileme, geç eşiğin bıraktığı otuz sekiz saatlik açık pencere, doğrulama başarısızlığında beş deneme ile uyarının hangi anda verilmesi gerektiği, ve üç yıllık bir dönemde elle yenilemenin dokuz kalemde unutulup bin yedi yüz saat açık pencere bırakması.

Önceki ders sertifikanın kaç yerde durduğunu saydı ve yenilemede dokunulan nokta sayısını o
sayıya eşit aldı. Yenilemenin kendisi bir kutu olarak kaldı: bir gün olur, biter, sertifika
tazelenir.

O kutunun içi bir **durum makinesi**dir. Bir istek gönderilir, alan adının denetiminde olunduğu
doğrulanır, imza alınır, yeni sertifika kopyalara dağıtılır. Dört adımın her biri sürer ve
ikincisi başarısız olabilir. İki ayar bu makinenin dışındadır ve sonucu belirler: sertifikanın
**ömrü** ve yenilemeye kaç saat kala başlanacağını söyleyen **eşik**.

Ölçüm kurgu bölgesel ölçüm ağının on iki sertifikası üzerinde, üç yıllık bir dönemde yapılır.
Sağlayıcı yoktur; adımlar, süreleri ve sertifika listesi kurgudur.

- **WS19.** Adım süreleri saat cinsinden sabittir: istek 1, doğrulama 2, imza 1, dağıtım 2.
  Doğrulama başarısız olursa geri çekilme dizisi `1, 2, 4, 8, 16` saattir ve beşinci denemeden
  sonra otomasyon vazgeçer.
- **WS20.** Otomasyon vazgeçtiğinde insan devralır ve işi sekiz saatte bitirir; elle yapılan her
  yenileme de sekiz saat sürer.
- **WS21.** Unutulan bir elle yenilemenin **fark edilme süresi** görünürlüğe bağlıdır: dışa
  bakan bir kalem iki saatte, iç bir kalem doksan altı saatte fark edilir.
- **WS22.** Unutma ve doğrulama hatası kendi üretecimizle üretilir; tohum `4711` görünürdür ve
  koşumdan koşuma aynı diziyi verir. Unutma oranı `0,25`, doğrulama hata oranı `0,30` alınır.
- **WS23.** Model süre ölçmez; bütün saat değerleri yukarıdaki sabitlerden aritmetikle türer.
- **WS24.** Açık pencere, yenileme akışının süresi eşiği aştığında geçen saat sayısıdır; sertifika
  o saatlerde süresi dolmuş olarak durur.

```js
// yenileme/akis.mjs — model: sertifika yenileme akisi bir durum makinesidir. Sure birimi saat,
// donem uc yil. Saglayici yoktur; adimlar ve sureleri kurgudur, butun sayilar bunlardan turer.
const DONEM = 26280;                       // 3 yil, saat
const ELLE = 8;                            // insanin devralip bitirmesi (saat)
const GERI = [1, 2, 4, 8, 16];             // dogrulama hatasindan sonra bekleme (saat)
const ADIM = { istek: 1, dogrulama: 2, imza: 1, dagitim: 2 };

// Durum makinesi: istek -> dogrulama -> (hata -> bekle -> dogrulama)* -> imza -> dagitim.
// "kotu" kacinci denemede basarili olundugunu soyler; GERI.length ise hic basarilamaz.
function kos(kotu) {
  let t = ADIM.istek;
  for (let d = 0; d < GERI.length; d += 1) {
    t += ADIM.dogrulama;
    if (d === kotu) return { sure: t + ADIM.imza + ADIM.dagitim, sonuc: "tamam" };
    t += GERI[d];
  }
  return { sure: t + ELLE, sonuc: "elle devralindi" };
}

const SURE = [0, 4, GERI.length].map((k) => kos(k).sure);   // 0 hata, 4 hata, vazgecis
const pencere = (esik, sure) => Math.max(0, sure - esik);
const yenilemeSayisi = (omur, esik) => Math.floor(DONEM / (omur - esik));
const zorunlu = (omur) => Math.ceil(DONEM / omur) - 1;

const E = [12, 12, 16, 10, 12, 12, 19, 13];
const yaz = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](E[i])).join("");
console.log(yaz(["omur(saat)", "esik(saat)", "yenileme/donem", "gereksiz", "pencere(0)",
  "pencere(4)", "pencere(vazgecis)", "uyari"]));
for (const omur of [2160, 8760])
  for (const esik of [1080, 720, 336, 48, 12]) {
    const n = yenilemeSayisi(omur, esik);
    console.log(yaz([omur, esik, n, n - zorunlu(omur), ...SURE.map((s) => pencere(esik, s)),
      SURE[2] > esik ? "ilk hatada" : "vazgecisde"]));
  }

// --- Elle yenileme ile otomatik yenileme, ayni donemde --------------------------
// Kurgu olcum aginin sertifikalari: [ad, omur(saat), gorunurluk]. Gorunurluk unutmanin
// fark edilme suresini belirler: disa bakan uc saatte, ic kalem gunlerce sonra gorulur.
const FARK = { dis: 2, ic: 96 };
const SERTIFIKA = [
  ["kenar-vekil-dis", 2160, "dis"], ["ic-vekil-orta", 2160, "ic"],
  ["ic-vekil-uretim", 2160, "ic"], ["olcum-uygulamasi", 8760, "dis"],
  ["toplayici-istemcisi", 8760, "ic"], ["faturalama-istemcisi", 8760, "ic"],
  ["yonetim-dinleyicisi", 8760, "ic"], ["bildirim-gecidi", 2160, "ic"],
  ["yedek-hedefi", 8760, "ic"], ["is-emri-uygulamasi", 2160, "dis"],
  ["sayac-agi-gecidi", 17520, "ic"], ["pano", 2160, "dis"],
];
// Kendi uretecimiz; tohum gorunur, kosumdan kosuma ayni diziyi verir.
const uretec = (tohum) => { let s = tohum >>> 0; return () => (s = (Math.imul(s, 1664525) + 1013904223) >>> 0) / 4294967296; };
const TOHUM = 4711, UNUTMA = 0.25, HATA = 0.30;

function elle() {
  const r = uretec(TOHUM);
  let olay = 0, kacan = 0, saat = 0; const kalem = new Set();
  const kirilim = { dis: [0, 0], ic: [0, 0] };            // [unutulan olay, acik saat]
  for (const [ad, omur, gor] of SERTIFIKA)
    for (let k = 0; k < Math.floor(DONEM / omur); k += 1) {
      olay += 1;
      if (r() < UNUTMA) {
        kacan += 1; saat += FARK[gor] + ELLE; kalem.add(ad);
        kirilim[gor][0] += 1; kirilim[gor][1] += FARK[gor] + ELLE;
      }
    }
  return { olay, kacan, saat, kalem: kalem.size, kirilim };
}

function otomatik(esik) {
  const r = uretec(TOHUM);
  let olay = 0, kacan = 0, saat = 0; const kalem = new Set();
  for (const [ad, omur] of SERTIFIKA)
    for (let k = 0; k < yenilemeSayisi(omur, esik); k += 1) {
      olay += 1;
      let d = 0;
      while (d < GERI.length && r() < HATA) d += 1;      // kacinci denemede basarili
      const p = pencere(esik, kos(d).sure);
      if (d === GERI.length) kacan += 1;
      if (p > 0) { saat += p; kalem.add(ad); }
    }
  return { olay, kacan, saat, kalem: kalem.size };
}

const Y = [24, 8, 22, 12, 16];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](Y[i])).join("");
console.log("\n" + yaz2(["yontem", "olay", "unutulan/vazgecilen", "acik saat", "etkilenen kalem"]));
const E0 = elle();
for (const [ad, r] of [["elle (esik yok)", E0], ["otomatik (esik 168)", otomatik(168)],
  ["otomatik (esik 12)", otomatik(12)]])
  console.log(yaz2([ad, r.olay, r.kacan, r.saat, r.kalem]));
console.log(`\nelle unutulanin kirilimi: dis ${E0.kirilim.dis[0]} olay / ${E0.kirilim.dis[1]} saat` +
  `   ic ${E0.kirilim.ic[0]} olay / ${E0.kirilim.ic[1]} saat`);
```

```
omur(saat)    esik(saat)  yenileme/donem  gereksiz  pencere(0)  pencere(4)  pencere(vazgecis)        uyari
2160                1080              24        12           0           0                  0   vazgecisde
2160                 720              18         6           0           0                  0   vazgecisde
2160                 336              14         2           0           0                  0   vazgecisde
2160                  48              12         0           0           0                  2   ilk hatada
2160                  12              12         0           0          17                 38   ilk hatada
8760                1080               3         1           0           0                  0   vazgecisde
8760                 720               3         1           0           0                  0   vazgecisde
8760                 336               3         1           0           0                  0   vazgecisde
8760                  48               3         1           0           0                  2   ilk hatada
8760                  12               3         1           0          17                 38   ilk hatada

yontem                      olay   unutulan/vazgecilen   acik saat etkilenen kalem
elle (esik yok)               88                    29        1700               9
otomatik (esik 168)           94                     0           0               0
otomatik (esik 12)            88                     0          56               8

elle unutulanin kirilimi: dis 14 olay / 140 saat   ic 15 olay / 1560 saat
```

## Eşiğin İki Ucu

İlk tablonun iki ucu iki ayrı arıza türü üretiyor ve ikisi de arıza gibi görünmüyor.

**Erken uç.** Ömrü doksan gün olan bir sertifikada eşik kırk beş güne konduğunda yenileme
sertifika henüz yarı yoldayken başlar. Dönem boyunca yirmi dört yenileme koşuyor; zorunlu sayı
on iki. On iki yenileme **gereksiz**dir: hiçbiri bir açık pencereyi kapatmıyor, her biri bir
istek, bir doğrulama, bir imza ve bir dağıtım üretiyor. Eşik yirmi bir güne indiğinde altı,
on dört güne indiğinde iki gereksiz yenileme kalıyor.

Gereksiz yenilemenin bedeli iki yerde ödenir. Birincisi doğrulama adımının kendisidir; her
yenileme bir dış çağrı ve bir dış bağımlılıktır. İkincisi dağıtımdır: her yenileme sertifikanın
bulunduğu her yere dokunur ve önceki dersin saydığı altı kopyalı düzende her dokunuş kısmi
durum riski taşır. Yirmi dört yenileme, on iki gereksiz kısmi durum fırsatıdır.

**Geç uç.** Eşik kırk sekiz saate indiğinde sıfır gereksiz yenileme kalıyor. Ölçünün bu sütunu
artık temiz; öteki sütunlar açılıyor. Doğrulama dört kez başarısız olduğunda akış yirmi dokuz
saat sürüyor ve kırk sekiz saatlik eşiğe sığıyor — pencere sıfır. Otomasyon beş denemenin
beşinde de başarısız olup insana devrettiğinde toplam elli saat sürüyor ve **iki saatlik** bir
pencere açılıyor.

Eşik on iki saate indiğinde iki sütun birden açılıyor: dört hatada **on yedi saat**, vazgeçişte
**otuz sekiz saat** açık pencere. Otuz sekiz saat, sertifikanın süresi dolmuş olarak durduğu ve
her bağlanan istemcinin bir uyarı ya da bir ret aldığı süredir.

## Ömrün Eşiği Nasıl Değersizleştirdiği

Tablonun ikinci yarısı aynı beş eşiği bir yıllık ömürde tekrarlıyor ve `gereksiz` sütunu artık
hareket etmiyor: beş eşiğin beşinde de bir. Ömür uzadıkça eşik, gereksiz yenileme sayısı
üzerindeki etkisini kaybediyor.

Nedeni oran: kırk beş günlük eşik doksan günlük bir ömrün yarısı, bir yıllık ömrün sekizde
biridir. Kısa ömürde eşik döngüyü ikiye böler, uzun ömürde ucundan kırpar. Bu, uzun ömrün
otomasyon için daha kolay olduğu anlamına gelmez — `pencere` sütunları iki yarıda **birebir
aynıdır**. Açık pencere ömre değil, yalnız eşiğe ve akışın süresine bağlıdır; bir yıllık bir
sertifikada on iki saatlik eşik, doksan günlükte olduğu gibi otuz sekiz saat açık pencere
bırakır.

İki yarı arasındaki gerçek fark yenileme sayısındadır: doksan günlük ömürde dönemde on iki ile
yirmi dört arası yenileme koşuyor, bir yıllık ömürde üç. Yenileme ne kadar seyrekse akış o kadar
az sınanır. Üç yılda üç kez koşan bir akışın bozulduğu, ancak dördüncü koşumda anlaşılır ve o
koşum sertifikanın süresinin dolmasından on iki saat öncedir.

## Uyarı Ne Zaman Gelmeli

Son sütun bir sayı değil, bir kural veriyor ve kuralı eşiğin kendisi belirliyor.

Otomasyonun en kötü durumdaki toplam süresi kırk iki saattir: beş doğrulama denemesi ve
aralarındaki otuz bir saatlik geri çekilme. İnsanın devralıp bitirmesi sekiz saat sürer. İkisi
toplam elli saattir.

Eşik elli saatten büyükse otomasyon sonuna kadar deneyebilir; vazgeçtiğinde bile insan için
yeterli zaman kalır ve uyarı **vazgeçiş anında** verilebilir. İlk üç eşik değeri bu durumdadır.
Eşik elli saatten küçükse durum tersine döner: otomasyonun sonuna kadar denemesini beklemek,
insanın devralacağı anı sertifikanın süresinin dolmasından sonraya atar. Bu durumda uyarı
**ilk doğrulama hatasında** verilmelidir.

Kural şu biçime iner: uyarı eşiği bir tercih değil, `en kötü otomatik süre + insan süresi`
toplamının eşikle karşılaştırılmasıdır. Kırk sekiz ve on iki saatlik eşiklerde otomasyonun
sessiz kalması bir arıza olur — otomasyon çalışıyor, deniyor, geri çekiliyor ve kimse haberdar
değil. Sessiz otomasyon, elle yenilemeden daha geç fark edilir.

## Elle Yenilemenin Dönem Faturası

İkinci tablo aynı on iki sertifikayı üç yıl boyunca elle yenilenmiş sayıyor.

Dönemde seksen sekiz yenileme olayı var. Yirmi dokuzu unutuldu — dörtte biri. Unutmalar dokuz
ayrı kaleme dağıldı: on iki sertifikanın dokuzunda en az bir kez süre doldu. Toplam açık
pencere **bin yedi yüz saat**, yani üç yılda yetmiş günün üstünde.

Kırılım satırı asıl bulguyu veriyor. Dışa bakan kalemlerde on dört unutma oldu ve toplam yüz
kırk saat açık pencere bıraktı. İç kalemlerde on beş unutma oldu ve **bin beş yüz altmış saat**
bıraktı. Olay sayıları neredeyse eşit, saatler on bir katı farklı.

Fark tek bir yerden geliyor: fark edilme süresi. Dışa bakan bir sertifikanın süresi dolduğunda
saha ekipleri iki saat içinde arar. İç bir sertifikanın süresi dolduğunda ne olur — toplayıcı
doğrulayıcıya bağlanamaz, gecelik toplu iş bir uyarı yazar, bildirim geçidi e-posta gönderemez —
ve bunların hiçbiri kimseyi aramaz. Doksan altı saat, arızanın bir insanın gözüne değmesi için
geçen süredir.

Bu, "elle yenileme yeterli" savunmasının nerede kırıldığını gösterir. Savunma dışa bakan
sertifikaya bakarak yapılır ve orada haklıdır: iki saatlik pencere kabul edilebilir. Aynı
disiplin iç kalemlere uygulandığında pencere kırk sekiz kat uzar ve kimse ölçmediği için bu
uzama hiçbir raporda görünmez.

## Otomasyonun Kapattığı ve Getirdiği

Son iki satır otomasyonu aynı döneme uyguluyor.

Eşiği yüz altmış sekiz saat olan otomasyon doksan dört yenileme koşuyor — elleden altı fazla,
çünkü eşik döngüyü kısaltıyor. Vazgeçilen yenileme yok, açık pencere **sıfır**, etkilenen kalem
sıfır. Bin yedi yüz saatlik pencere sıfıra indi.

Eşiği on iki saat olan otomasyon aynı seksen sekiz olayı koşuyor ve elli altı saat açık pencere
bırakıyor; sekiz kalem etkileniyor. Vazgeçilen yenileme yine yok — beş denemenin beşinin birden
başarısız olması ender bir olaydır — ama iki ya da üç denemeye kalan yenilemeler on iki saatlik
eşiğe sığmıyor. Otomasyonun kendisi doğru çalışıyor; eşik yanlış.

İki satır birlikte okunduğunda otomasyonun neyi kapattığı nettir: **unutmayı** kapattı, hatayı
kapatmadı. Elle yenilemede bin yedi yüz saatin tamamı unutmadan geliyordu. Otomasyonda kalan
elli altı saatin tamamı doğrulama hatasından geliyor ve o hata bir eşik ayarıyla soğurulabilir.

Kapatmanın getirdiği yeni yüzey de sayılabilir. Otomasyon bir bileşendir: bir kimlikle koşar,
sertifikanın bulunduğu her yere yazma yetkisi vardır, dış bir doğrulama adımına bağımlıdır ve
kendi yapılandırmasında bir eşik taşır. Dört kalem. Elle yenilemede bu dört kalem yoktu; onun
yerine dokuz kalemde unutulan bir alışkanlık vardı. Otomasyon **kalem sayısını değiştirmedi**,
kalemin türünü değiştirdi: hatırlanması gereken bir işi, izlenmesi gereken bir bileşene çevirdi.

## Özet

- Eşik erken konduğunda dönemde yirmi dört yenileme koştu ve on ikisi gereksizdi; eşik on dört
  güne indiğinde gereksiz yenileme ikiye, kırk sekiz saate indiğinde sıfıra düştü.
- Eşik geç konduğunda pencere açıldı: on iki saatlik eşikte dört doğrulama hatası on yedi saat,
  otomasyonun vazgeçişi otuz sekiz saat açık pencere bıraktı.
- Uyarının anı eşikten türer: en kötü otomatik süre kırk iki saat ile insan süresi sekiz saatin
  toplamı eşikten büyükse uyarı ilk doğrulama hatasında verilmelidir, küçükse vazgeçiş anı yeter.
- Üç yıllık dönemde elle yenilemenin seksen sekiz olayının yirmi dokuzu unutuldu, on iki
  sertifikanın dokuzunda süre doldu ve toplam bin yedi yüz saat açık pencere kaldı.
- Unutmaların yarısı dışa bakan kalemlerdeydi ama açık saatin yalnız yüz kırkı oradan geldi;
  iç kalemlerin on beş unutması bin beş yüz altmış saat bıraktı — fark edilme süresi farkı.
- Eşiği yüz altmış sekiz saat olan otomasyon açık pencereyi sıfıra indirdi ve yerine dört yeni
  kalem getirdi: bir kimlik, bir yazma yetkisi, bir dış bağımlılık ve bir eşik ayarı.

## Sonraki Adım

Bu ders ile önceki iki ders isteğin yolunu kurdu ve şifreledi: kim geldiği aktarıldı, şifre bir
yerde sonlandı, sertifika kendi kendine tazeleniyor. Yolun tamamı artık her istek için baştan
sona koşuyor — her istek için.

Ölçüm ağının panosu her açılışta aynı bölge haritasını, aynı sayaç listesini ve aynı gecelik
özet dosyasını istiyor. Bu isteklerin çoğu aynı yanıtı üretiyor ve her biri kenar vekilden iç
vekile, oradan uygulamaya ve veri katmanına kadar gidiyor. Yanıt bir yerde tutulabilir — ama
"bir yer" iki ayrı yerdir: kenarda, istemciye yakın; kaynakta, uygulamaya yakın. İkisi birden
konduğunda isabetin nasıl bölündüğü, bir içerik değiştiğinde eskisinin kenarda kaç saniye daha
durduğu ve tazelik ayarının bu pencereyi nasıl değiştirdiği ayrı sayılardır. Sonraki ders iki
katmanlı önbelleği bu üç sayıyla ölçer ve yanlış önbelleklemenin açtığı yüzeyi adıyla yazar.
