TLS sertifikatları və avtomatik yeniləmə
Niyə lazımdır
TLS «müştəri xidməti» trafikini şifrələyir, serverin həqiqiliyini təsdiqləyir (və mTLS-də - müştəri) və saxtakarlıqdan qoruyur. Əsas risklər: sertifikatların gecikməsi, zəif açarlar, yanlış etimad zənciri, əl prosedurları. Məqalənin məqsədi sertifikatların həmişə aktual olduğu və rotasiyaların istifadəçilər üçün görünməz olduğu arxitekturanı təsvir etməkdir.
Əsas anlayışlar
CA/Abunəçi: Sertifikatlaşdırma mərkəzi (ictimai və ya daxili).
Chain (fullchain): vərəq sertifikatı + ara + kök (adətən müştəri anbarlarında kök).
SAN (Subject Alternative Name): bir sertifikat üçün domen/IP siyahısı (multi-SAN).
Wildcard: `.example. com '- DNS-validasiya tələb edən bir çox alt domen üçün əlverişlidir.
OCSP stapling: server yeni rəy statusu tətbiq edir; gecikmələri və xarici OCSP asılılığını azaldır.
HPKP: köhnəlmiş/istifadə edilmir; bunun əvəzinə - CT-loqlar və əsas gigiyena.
CT (Certificate Transparency): İctimai ekstradisiyalar - saxta buraxılışlara nəzarət etmək üçün vacibdir.
Kriptoprofil və açarlar
Alqoritmlər:- ECDSA (P-256) - sürətli və yığcam; müasir müştərilər üçün üstünlük.
- RSA-2048/3072 - hələ uyğun; dual-cert (RSA + ECDSA) saxlaya bilərsiniz.
- Açar Generation: Yalnız hədəf tərəfdə (şəbəkə vasitəsilə məxfi ötürülməməlidir), giriş hüquqlarını qorumaq ('0600').
- HSM/KMS: Kritik zonalar üçün (ödəniş/PII) açarları HSM/KMS-də saxlayın, əməliyyatların auditini daxil edin.
- Həyat müddəti: qısa sertifikatlar (daxili üçün 90 gün/30 gün) tez-tez rotasiyanı təşviq edir və güzəşt riskini azaldır.
TLS memarlıq idarəetmə modelləri
1. ACME vasitəsilə açıq CA (Let 's Encrypt/Buypass/və s.)
Validasiya: HTTP-01 (web server/Ingress vasitəsilə) və ya DNS-01 (wildcard/qeyri-axın domenləri üçün).
Üstünlüklər: pulsuz/avtomatlaşdırılmış, geniş etimad. Mənfi cəhətləri: xarici asılılıqlar.
2. Daxili Korporativ CA
Alətlər: HashiCorp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL.
Üstünlüklər: xüsusi siyasətçilər, mTLS, qısa TTL, daxili domen buraxılışı. Mənfi cəhətləri: kökün paylanması, etimadın idarə edilməsi.
3. Hibrid
Xarici istifadəçilər üçün açıq CA; daxili CA - xidmət-k-servis (mTLS), klasterlərarası kanallar və administratorlar üçün.
Avtomatik yeniləmə nümunələri (renew)
Ümumi prinsiplər
Yeniləmə həddi: bitməsinə 30 gün ≤ başlayın; kritik xidmətlər üçün - '≤ 45' gün ərzində.
Zero-downtime: yeni sertifikat buraxılması, atom əvəzedici, rəvan reload heç bir bağlantı qırılması.
Double tutma (blue/green): cari və aşağıdakı cert saxlamaq; keçid - symlink və ya version secret vasitəsilə.
Alerting: 45/30/14/7/3/1 gün ərzində xəbərdarlıqlar; ACME çağırışının uğursuzluğu zamanı ayrı bir alert.
ACME müştəriləri və onların tətbiqi
certbot / acme. sh/lego: VM/bare-metal yüngül agentlər.
cert-manager (Kubernetes): Issuer/ClusterIssuer ilə işləyən operator; release/renew avtomatlaşdırır və gizli qeyd edir.
step-ca/Vault Agent: avtomatik buraxılış/qısa TTL ilə rotasiya, açarları və zəncirləri yeniləmək üçün sidecar nümunələri.
Kubernetes üçün proseslər
cert-manager (Let 's Encrypt üçün Issuer nümunəsi, Ingress vasitəsilə HTTP-01):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
Sertifikat sorğusu:
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 дней
NGINX-Ingress-də qaynar əvəzləmə «Gizli» yeniləndikdə avtomatik olaraq baş verir. 'ssl-ecdh-curve: secp256r1' əlavə edin və/ConfigMap şərhləri vasitəsilə OCSP stapling daxil edin.
VM/Bare-metal üçün proseslər
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 timer vasitəsilə periodik 'certbot renew'.
Wildcard üçün DNS-01 (provayder-plugin) və oxşar '--deploy-hook' istifadə edin.
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: atom əvəzedici
Saxlayın 'fullchain. pem` и `privkey. sabit yollar altında pem '(version fayllar üçün symlink), sonra' nginx -s reload '.
Daxili PKI və mTLS
HashiCorp Vault PKI (rol nümunəsi):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
Avtomatik buraxılış: Vault Agent Injector (K8s) və ya sidecar vasitəsilə; app/FS-watcher faylından cert oxuyur.
Qısa TTL: 24-720 saat, tez-tez rotasiyanı stimullaşdırır və oğurlanmış açarın dəyərini azaldır.
mTLS: xüsusi xidmətlər/rollar üçün müştəri sertifikatları verin; girişdə - ingress/sidecar-proxy mutual TLS.
Təhlükəsiz əməliyyat
Sirlərin ayrılması: Şəxsi açarlar - yalnız hostda/podda, ən kiçik imtiyazlar prinsipi ilə giriş.
Fayl hüquqları: açar üçün '600'; sahibi - prosesin istifadəçisi.
Grace-Period: DNS/ACME/provayder uğursuzluqları nəzərə almaq üçün kifayət qədər 'renewBefore' qurun.
OCSP Stapling: cəbhələrdə aktiv; cavabın təravətini izləmək (adətən 12-72 saat).
HSTS: Bütün məzmunun düzgün HTTPS çatdırılmasına əmin olaraq tədricən (başlanğıcda 'preload' olmadan) işə salın.
Dual-cert (RSA + ECDSA): uyğunluq və performansı yaxşılaşdırır; müasir müştərilərə ECDSA verin.
Monitorinq və SLO
Metriklər və yoxlamalar:- Hər bir domen/sirr üçün son günlər (gauge); SLO: «No cert <7 gün expiry».
- Zəncirin etibarlılığı (linting), SAN-ın tələb olunan domenlərə/IP-ə uyğunluğu.
- OCSP stapling statusu (cavabın təzəliyi).
- Uğurlu/uğursuz ACME çağırışlarının payı.
- TLS əl sıxma leytensləri, protokol versiyaları/şifrələr (audit).
- Warn: bitməsinə 30 gün.
- Crit: 7 gün/uğursuzluq 'renew'.
- Page: 72 saat/məhsulda qeyri-sabit zəncir/OCSP stapling yoxdur.
Hadisələr və geri çəkilmələr
Sertifikatın gecikməsi: müvəqqəti olaraq yenidən buraxın və əl ilə bərkidin, RCA-nı düzəldin (niyə renew işləmədi, DNS kilidi/API məhdudiyyətləri).
Açarın güzəşti: dərhal yenidən buraxılması/geri çağırılması, sirlərin rotasiyası, giriş auditi, DNS provayderi/ASME hesabı tokenlərinin rotasiyası.
Səhv zəncir: doğru 'fullchain' təcili deploy, məcburi reload cəbhələri.
DNS provayderinə kilidləmə: ehtiyat validasiya yolunu (HTTP-01) və ya ikincil DNS saxlayın.
Avtomobil satışının tətbiqi üçün çek siyahısı
1. Model seçin (ACME/daxili PKI/hibrid vasitəsilə açıq CA).
2. Kriptoprofil müəyyən edin: ECDSA-P256, lazım olduqda, RSA-2048 ilə dual-cert.
3. Avtomatik agent (cert-manager, certbot, acme. sh, Vault Agent).
4. zero-downtime əvəz təşkil (symlink-pattern, hot-reload ingress/NGINX/Envoy).
5. OCSP stapling və HSTS (mərhələli) daxil edin.
6. Challenge şərtləri və statuslarının alertinqini əlavə edin; SLO yazın.
7. Break-glass və əl istehsalı proseslərini sənədləşdirin.
8. «Fayl» təlimləri edin: sınıq DNS-01, ACME düşməsi, tükənmiş kök/aralıq.
9. Şəxsi açarları nəzərdən keçirin, DNS provayder tokenlərini və ACME hesablarını çevirin.
iGaming/Fintech üçün xüsusiyyətlər
PCI DSS/PII: ciddi Cipher Suites, məcburi TLS 1. 2+/1. 3, təhlükəsizlik güzəştləri olmadan zəif şifrələr/sıxılma, session resumption söndürün.
Domen seqmentasiyası: ödəniş alt domenləri və administratorlar üçün ayrı-ayrı sertifikatlar; məzmun provayderləri üçün - təcrid olunmuş zəncirlər.
Audit və Loging: Release/Review/Rotation qeyd; CI/CD artefaktlarını imzalayın.
Multi-regionallıq: Bölgələrə yerli Issuer, xaç-regional uğursuzluqlardan asılı deyil.
Konfiqurasiya nümunələri
NGINX (RSA+ECDSA, OCSP stapling)
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 və ekstradisiya
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
FAQ
Wildcard lazımdır?
Yeni alt domenlər tez-tez görünürsə - bəli (DNS-01 vasitəsilə). Əks halda, açıq domenlər üçün multi-SAN istifadə edin.
Nə seçmək lazımdır: cert-manager və ya certbot?
Kubernetes → cert-manager. VM/mikroservis K8s → certbot/lego/acme. sh. Daxili PKI → Vault/step-ca.
TTL-ni bir günə qədər azaltmaq olarmı?
Daxili mTLS üçün - bəli, avtomatlaşdırma/sidecar rotasiyaya zəmanət verirsə və proqramlar hot-reload edə bilər.
DNS-01 necə qorumaq olar?
Ayrı token/minimum zonaya giriş, açar rotasiyası, IP API girişini məhdudlaşdırmaq, audit aparmaq.
Yekun
TLS-in etibarlı idarə edilməsi düzgün kriptofil, avtomatlaşdırılmış buraxılış və yeniləmə, sıfır-aşağı rotasiya, müşahidə və aydın insident-respons prosedurlarının birləşməsidir. ACME/PXI konveyer qurun, ciddi alertinq əlavə edin və müntəzəm olaraq «təcili» ssenariləri öyrədin - və vaxtı keçmiş sertifikatlar gecə çağrı cihazlarının mənbəyi olmağı dayandıracaq.