IIS'te bir sertifikayı siteye bağlarken (binding) karşılaşılan hatalar genellikle sertifikanın özel anahtarı olmaması, port çakışması ya da SNI ayarından kaynaklanır.
Belirtiler
- Binding ekranında sertifika listede görünmüyor.
- "A specified logon session does not exist" veya "The process cannot access the file because it is being used by another process" hatası.
- Birden fazla site aynı IP:443'te çalışırken yalnızca biri açılıyor.
Olası nedenler ve çözümler
- Özel anahtar yok: Sertifika yalnızca .cer olarak içe aktarılmıştır. Bekleyen isteği tamamlayın (Complete Certificate Request) veya .pfx dosyasını anahtarıyla içe aktarın. Sertifikanın MMC'de üzerinde anahtar simgesi olmalı.
- Yanlış depo: Sertifika Local Machine > Personal deposunda olmalıdır; kullanıcı deposu IIS'te görünmez.
- Port çakışması: 443 portunu başka bir servis kullanıyor olabilir.
- SNI: Aynı IP'de birden çok HTTPS sitesi için binding'de Require Server Name Indication kutusunu işaretleyin ve ana bilgisayar adını yazın.
- Ara sertifika eksik: Ara CA sertifikalarını Intermediate Certification Authorities deposuna ekleyin.
Komut satırı kontrolleri
netsh http show sslcert
netstat -ano | findstr :443
certutil -store my
netsh http show sslcert çıktısında hangi IP:port için hangi sertifika parmak izinin bağlandığını görürsünüz. Eski bir bağlama kalmışsa yenisini eklemeden önce silmeniz gerekebilir:
netsh http delete sslcert ipport=0.0.0.0:443
Bu komut, o bağlamayı kaldırır; canlı sitede çalıştırmadan önce mevcut durumu not edin.
Doğrulama ve önleme
- Binding sonrası siteyi dışarıdan test edin.
- Yenilemede yeni sertifikayı bağlayıp eskisini ancak sonra kaldırın.
- .pfx dosyalarını güçlü parolayla saklayın.
Sertifikanın dışarıdan nasıl göründüğünü SSL kontrol aracıyla sınayın; yeni sertifika için SSL ürünlerine bakabilirsiniz.