GH GambleHub

TLS sertifikaları ve otomatik yenileme

Neden buna ihtiyacın var?

TLS trafiği "kliyent↔servis" şifreler, sunucunun (ve mTLS - istemci ile) gerçekliğini onaylar ve ayrıca sahteciliğe karşı korur. Başlıca riskler: sertifika gecikmeleri, zayıf anahtarlar, yanlış güven zinciri, manuel prosedürler. Makalenin amacı, sertifikaların her zaman alakalı olduğu ve rotasyonların kullanıcılar tarafından fark edilmeden geçtiği mimariyi tanımlamaktır.

Temel kavramlar

CA/İmzacı: sertifika yetkilisi (kamu veya iç).
Zincir (tam zincir): yaprak sertifikası + ara + kök (genellikle istemci depolarında kök).
SAN (Konu Alternatif Adı): bir sertifika için alan/IP listesi (çoklu SAN).
Wildcard: '.example com '- birçok alt alan için uygundur, DNS doğrulaması gerektirir.
OCSP zımbalama: sunucu en son iptal durumunu uygular; Harici OCSP'lere olan gecikme ve bağımlılığı azaltır.
HPKP: eskimiş/kullanılmamış; Bunun yerine, CT günlükleri ve anahtar hijyeni.
CT (Certificate Transparency): Halka açık yayınlama günlükleri - sahte sürümleri kontrol etmek için önemlidir.

Kripto profili ve anahtarları

Algoritmalar:
  • ECDSA (P-256) - hızlı ve kompakt; modern müşteriler için tercih edilir.
  • RSA-2048/3072 - hala uyumlu; dual-cert (RSA + ECDSA) yapılabilir.
  • Anahtar oluşturma: yalnızca hedef tarafta (ağ üzerinden privateers transfer etmeyin), erişim haklarını ('0600') koruyun.
  • HSM/KMS: HSM/KMS'deki kritik alanlar (ödeme/PII) mağaza anahtarları için denetim işlemlerini etkinleştirin.
  • Kullanım ömrü: Kısa sertifikalar (dahili için 90 gün/30 gün) sık rotasyonu teşvik eder ve uzlaşma riskini azaltır.

TLS yönetiminin mimari modelleri

1. ACME aracılığıyla genel CA (Şifreleyelim/Buypass/vb.)

Doğrulama: HTTP-01 (web sunucusu/Giriş yoluyla) veya DNS-01 (joker karakter/akış dışı etki alanları için).
Artıları: ücretsiz/otomatik, geniş güven. Eksileri: dış bağımlılıklar.

2. Dahili Kurumsal CA

Araçlar: HashiCorp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL.
Artıları: özel politikalar, mTLS, kısa TTL, dahili alanlar için sürüm. Eksileri: kök dağıtımı, güven yönetimi.

3. Hibrit

Dış kullanıcılar için genel CA; Dahili CA - hizmetten hizmete (mTLS), kümeler arası kanallar ve yöneticiler için.

Otomatik yenileme modelleri (yenileme)

Genel ilkeler

Yenileme eşiği: sona ermeden önce '≤ 30' gün başlar; Kritik hizmetler için - '≤ 45' günde.
Sıfır kesinti süresi: yeni bir sertifika, atomik değiştirme, bağlantıları kesmeden sorunsuz yeniden yükleme.
Çift tutma (mavi/yeşil): Geçerli ve sonraki sertifikayı saklayın; Anahtarlama - symlink veya sürüm gizli aracılığıyla.
Uyarı: 45/30/14/7/3/1 gün uyarıları; ACME meydan okumasının başarısızlığı sırasında ayrı bir uyarı.

ACME istemcileri ve uygulamaları

certbot/acme. sh/lego: VM/bare-metal üzerindeki ışık ajanları.
cert-manager (Kubernetes): İhraççı/ClusterIssuer ile çalışan operatör; Serbest bırakmayı/yenilemeyi otomatikleştirir ve Gizli'ye yazar.
Step-ca/Vault Agent: Kısa TTL'ler, anahtarların ve zincirlerin güncellenmesi için sidecar desenleri ile otomatik serbest bırakma/döndürme.

Kubernetes için Süreçler

Cert-manager (Let's Encrypt HTTP-01 via Ingress için yayıncı örneği):
yaml apiVersion: cert-manager. io/v1 kind: ClusterIssuer metadata:
name: le-http01 spec:
acme:
email: devops@example. com server: https://acme-v02. api. letsencrypt. org/directory privateKeySecretRef:
name: le-account-key solvers:
- http01:
ingress:
class: nginx
Sertifika talebi:
yaml apiVersion: cert-manager. io/v1 kind: Certificate metadata:
name: app-cert namespace: prod spec:
secretName: app-tls dnsNames:
- app. example. com issuerRef:
name: le-http01 kind: ClusterIssuer privateKey:
algorithm: ECDSA size: 256 renewBefore: 720h # 30 дней

'Gizli' güncellendiğinde NGINX-Ingress'te sıcak takas otomatik olarak gerçekleşir. 'ssl-ecdh-curve: secp256r1' ekleyin ve/ConfigMap ek açıklamaları aracılığıyla OCSP zımbalamayı etkinleştirin.

VM/Bare-metal için İşlemler

Certbot (HTTP-01):
bash sudo certbot certonly --webroot -w /var/www/html -d example. com -d www.example. com \
--deploy-hook "systemctl reload nginx"

Systemd zamanlayıcı ile periyodik 'certbot yenileme'.
Joker karakter için DNS-01 (eklenti sağlayıcısı) ve benzeri '--deploy-hook' kullanın.

Acme. Sh (DNS-01, joker):
bash export CF_Token="" # example for Cloudflare acme. sh --issue --dns dns_cf -d example. com -d '.example. com' \
--keylength ec-256 --ecc \
--reloadcmd "systemctl reload nginx"

NGINX Atomik Değiştirme

Keep 'fullchain. Pem 'и' privkey. Kararlı yollar altında pem '(sürümlenmiş dosyalara symlink), sonra' nginx -s yeniden yükle '.

Dahili PKI ve mTLS

HashiCorp Vault PKI (örnek rol):
bash vault secrets enable pki vault secrets tune -max-lease-ttl=87600h pki vault write pki/root/generate/internal common_name="Corp Root CA" ttl=87600h vault write pki/roles/service \
allowed_domains="svc. cluster. local,internal. example" allow_subdomains=true \
max_ttl="720h" require_cn=false key_type="ec" key_bits=256

Otomatik serbest bırakma: Vault Agent Enjektörü (K8s) veya sidecar aracılığıyla; Uygulama/FS-watcher dosyasından sertifikayı yeniden okur.
Kısa TTL: 24-720 saat, sık dönüşü teşvik eder ve çalınan anahtarın değerini azaltır.
mTLS: belirli hizmetler/roller için istemci sertifikaları verir; Girişte - giriş/sidecar-proxy'de karşılıklı TLS.

Güvenli çalışma

Sırları paylaşma: özel anahtarlar - yalnızca ana bilgisayarda/bölmede, en az ayrıcalık ilkesine göre erişim.
Dosya hakları: Anahtar için '600'; sahibi - süreç kullanıcısı.
Grace period: DNS/ACME/provider hatalarını hesaba katmak için yeterli olacak şekilde 'renewBefore' ayarını yapın.
OCSP Zımbalama: cephelerde açın; Yanıtın tazeliğini izleyin (genellikle 12-72 saat).
HSTS: yavaş yavaş açın (başlangıçta 'ön yükleme' olmadan), tüm içeriğin doğru HTTPS teslimatından emin olun.
Dual-cert (RSA + ECDSA): uyumluluğu ve performansı artırır; Modern müşterilere ECDSA verin.

İzleme ve SLO

Metrikler ve kontroller:
  • Her domain/secret için son kullanma tarihinden (gauge) önceki günler; SLO: "<7 günden sona ermesine kadar sertifika yok".
  • Zincir geçerliliği (linting), gerekli alan adları/IP ile SAN uyumluluğu.
  • OCSP zımbalama durumu (yanıtın tazeliği).
  • Başarılı/başarısız ACME Mücadelelerinin yüzdesi.
  • Leitency TLS el sıkışmaları, protokol sürümleri/şifreleri (denetim).
Uyarılar (düzeylere örnek):
  • Uyarı: Son kullanma tarihine 30 gün.
  • Crit: 7 gün/başarısızlık 'yenileme'.
  • Sayfa: Prod/no OCSP zımbalamada 72 saat/geçersiz zincir.

Olaylar ve geri dönüşler

Sertifika gecikmesi: geçici olarak el ile yeniden yayınlama ve dağıtma, RCA'yı düzeltme (yenileme neden işe yaramadı, DNS engelleme/API kısıtlamaları).
Anahtar uzlaşma: derhal yeniden gönderme/iptal, sırların döndürülmesi, erişim denetimi, DNS sağlayıcısı/ACME hesap belirteçlerinin döndürülmesi.
Yanlış zincir: doğru 'tam zincirin' acil olarak yatırılması, cephelerin zorla yeniden yüklenmesi.
DNS sağlayıcısına kilitleme: yedekleme doğrulama yolunu (HTTP-01) veya ikincil DNS'yi saklayın.

Otomatik yenileme uygulama kontrol listesi

1. Modeli seçin (ACME/internal PKI/hybrid aracılığıyla genel CA).
2. Kripto profilini tanımlayın: ECDSA-P256, gerekirse RSA-2048 ile çift sertifika.
3. Otomatik aracıyı yapılandırın (cert-manager, certbot, acme. Sh, Vault Agent).
4. Sıfır kesinti süresi değişimi düzenleyin (symlink pattern, hot-reload ingress/NGINX/Envoy).
5. OCSP zımbalama ve HSTS'yi açın (aşamalar halinde).
6. Uyarı tarihleri ve meydan okuma durumları ekleyin; SLO reçete et.
7. Kırılan cam ve manuel bırakma işlemlerini belgeleyin.
8. "Sahte" egzersizler yapın: kırık DNS-01, ACME düşüşü, süresi dolmuş kök/ara.
9. Özel anahtarlara erişimi gözden geçirin, DNS sağlayıcı belirteçlerini ve ACME hesaplarını döndürün.

IGaming/fintech için özellikler

PCI DSS/PII: Sıkı Cipher Suites, zorunlu TLS 1. 2+/1. 3, zayıf şifreleri/sıkıştırmayı kapatın, güvenlik tavizleri olmadan oturum devam ettirin.
Etki alanı segmentasyonu: ödeme alt alanları ve yöneticileri için ayrı sertifikalar; İçerik sağlayıcılar için - izole zincirler.
Denetim ve kayıt: Kayıt yayınlama/geri çağırma/rotasyon; CI/CD artifaktlarını imzala.
Çok bölgesellik: Bölgeler arası başarısızlıklara bağlı kalmamak için bölgelere yerel ihraççılar.

Örnek Konfigürasyonlar

NGINX (RSA + ECDSA, OCSP zımbalama)

nginx ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ecdh_curve secp256r1;

ssl_certificate   /etc/nginx/certs/app_ecdsa/fullchain. pem;
ssl_certificate_key /etc/nginx/certs/app_ecdsa/privkey. pem;
ssl_certificate   /etc/nginx/certs/app_rsa/fullchain. pem;
ssl_certificate_key /etc/nginx/certs/app_rsa/privkey. pem;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=31536000" always;

OpenSSL: CSR (ECDSA-P256)

bash openssl ecparam -name prime256v1 -genkey -noout -out privkey. pem openssl req -new -key privkey. pem -out csr. pem -subj "/CN=app. example. com" \
-addext "subjectAltName=DNS:app. example. com,DNS:www.example. com"

CFSSL: profil ve yayın

json
{
"signing": {
"profiles": {
"server": {
"usages": ["digital signature","key encipherment","server auth"],
"expiry": "2160h"
}
}
}
}
bash cfssl gencert -profile=server ca. json csr. json      cfssljson -bare server

SSS

Wildcard'a ihtiyacım var mı?
Sık sık yeni alt alanlar görünürse, evet (DNS-01 aracılığıyla). Aksi takdirde, açık alanlar için multi-SAN kullanın.

Ne seçilir: cert-manager veya certbot?
Kubernetes - cert-manager. VM/microservices out of K8s - certbot/lego/acme. Sh. Dahili PKI - Vault/step-ca.

TTL bir güne indirilebilir mi?
Dahili mTLS için, evet, otomasyon/sidecar dönüşü garanti ediyorsa ve uygulamalar yeniden yüklenebilirse.

DNS-01 nasıl güvence altına alınır?
Bölgeye ayrı belirteç/minimum erişim, anahtar döndürme, IP API erişimini kısıtlama, denetim.

Toplam

Güvenilir TLS yönetimi, doğru kripto profili, otomatik sürüm ve yenileme, sıfır kesinti süresi rotasyonları, gözlemlenebilirlik ve açık olay yanıtı prosedürlerinin bir kombinasyonudur. Bir ACME/PXI boru hattı inşa edin, sıkı uyarı ekleyin ve "acil durum" senaryolarını düzenli olarak eğitin - ve süresi dolmuş sertifikalar artık gece çağrı cihazlarının kaynağı olmayacak.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.