DBAtlas · Veritabanı operasyon atlası

TLS / sertifika süresi doldu

Belirti

'certificate has expired', 'SSL handshake failed', istemciler aniden bağlanamıyor (kod değişmeden).

1. Nerede kopuyor: sunucu, istemci, yoksa CA?

Süresi dolan sunucu sertifikası mı, istemci sertifikası mı, yoksa zincirdeki CA mı? Belirti çoğu zaman 'dün çalışıyordu bugün çalışmıyor, kod değişmedi' şeklindedir.

2. Süreyi ölç

Sertifikanın bitiş tarihini doğrudan sunucudan oku (veritabanı bağımsız hızlı yöntem).

PostgreSQL

openssl s_client -connect host:5432 -starttls postgres </dev/null 2>/dev/null | openssl x509 -noout -dates

MongoDB

openssl s_client -connect host:27017 </dev/null 2>/dev/null | openssl x509 -noout -enddate

Redis

openssl s_client -connect host:6379 </dev/null 2>/dev/null | openssl x509 -noout -enddate

3. Yeni sertifikayı kur ve yükle

Sertifikayı değiştirip servisi çoğunlukla yeniden başlatmadan yeniden yükle (reload).

PostgreSQL

-- ssl_cert_file/ssl_key_file yenile, sonra:
SELECT pg_reload_conf();

MySQL

ALTER INSTANCE RELOAD TLS;

SQL Server

-- SQL Server Configuration Manager > Certificate; servis restart gerekir

MongoDB

// net.tls.certificateKeyFile dosyasını (aynı yolda) yenile, sonra yeniden başlatmadan yükle (5.0+):
db.adminCommand({rotateCertificates: 1})

Redis

CONFIG SET tls-cert-file /path/yeni.crt
CONFIG SET tls-key-file /path/yeni.key

Elasticsearch

# ES, xpack.security.*.ssl altında tanımlı sertifika/anahtar dosyalarını (PEM, PKCS#12) izler ve
# AYNI yoldaki dosya değişince otomatik yeniden yükler (yeniden başlatma gerekmez).
# Yol, dosya adı veya keystore parolası değişiyorsa rolling restart gerekir.
# Not: POST _nodes/reload_secure_settings yalnızca yeniden yüklenebilir keystore ayarları içindir, TLS sertifikası için değildir.
# Doğrula: openssl s_client ile yeni bitiş tarihini kontrol edin ve ES loglarında
# sertifikanın yeniden yüklendiğine dair kaydı arayın.

4. Doğrula

Yeni sertifikayla TLS el sıkışmasının başarılı olduğunu ve süresinin uzadığını yukarıdaki openssl komutuyla teyit et; bir istemciyle uçtan uca bağlan.

5. Kalıcı: bir daha yaşama

Sertifika bitişine 30 gün kala alarm kur; otomatik yenileme (ACME/Let's Encrypt, HashiCorp Vault, cert-manager) kullan. Yenileme sonrası reload'ı otomasyona bağla.

DBAtlas'ta aç →