Sertifika onaylandığında, doğrulama tamamlandığında veya bir sipariş iptal edildiğinde sağlayıcı sizi anında haberdar edebilir. Bunu yapan mekanizma webhook'tur: olay gerçekleşince sağlayıcı, sizin belirlediğiniz bir HTTPS adresine POST isteği gönderir. Her sağlayıcı webhook sunmaz; yoksa periyodik sorgulama (polling) kullanılır.
Tasarım İlkeleri
- Yalnızca HTTPS: Dinleyici adresiniz geçerli bir sertifikayla sunulmalıdır.
- İmza doğrulama: Gelen isteğin gerçekten sağlayıcıdan geldiğini, paylaşılan gizli anahtarla üretilen HMAC imzasıyla doğrulayın.
- Hızlı yanıt: Olayı kuyruğa alıp hemen 2xx dönün; ağır işi sonra yapın.
- Tekrar güvenliği: Sağlayıcı başarısız teslimleri yeniden deneyebilir; olay kimliğini saklayıp aynı olayı iki kez işlemeyin (idempotency).
PHP ile İmza Doğrulama Örneği
<?php
$govde = file_get_contents('php://input');
$imza = $_SERVER['HTTP_X_SIGNATURE'] ?? '';
$beklenen = hash_hmac('sha256', $govde, getenv('WEBHOOK_SECRET'));
if (!hash_equals($beklenen, $imza)) {
http_response_code(401);
exit;
}
$olay = json_decode($govde, true);
// olayi kuyruga yaz, sonra:
http_response_code(200);
Başlık adı ve imza biçimi sağlayıcıya göre değişir; dokümantasyondaki tanıma uyun. Karşılaştırmada hash_equals kullanmak zamanlama saldırılarını önler.
Sık Sorunlar
- Güvenlik duvarı veya WAF'ın sağlayıcı IP'lerini engellemesi.
- Sertifika zinciri eksik olduğu için sağlayıcının TLS bağlantısını reddetmesi; dinleyici adresinizi SSL kontrol aracıyla sınayın.
- İşlemin uzun sürmesi nedeniyle zaman aşımına uğrayıp gereksiz yeniden deneme alınması.
Olay kaçırmamak için webhook'un yanına düşük sıklıkta bir durum sorgulaması da koyabilirsiniz. Sertifika ürünleri için SSL sertifikaları sayfasına bakın.