Сертификатҳои TLS ва таҷдиди автоматӣ
Чаро ба шумо лозим аст?
TLS трафики "kliyent↔servis" -ро рамзгузорӣ мекунад, ҳаққонияти серверро тасдиқ мекунад (ва бо MTLS - муштарӣ) ва инчунин аз ғоратгарӣ муҳофизат мекунад. Хатарҳои асосӣ: таъхири шаҳодатномаҳо, калидҳои заиф, занҷири нодурусти эътимод, тартиботи дастӣ. Ҳадафи мақола тавсифи меъморӣ мебошад, ки дар он шаҳодатномаҳо ҳамеша мувофиқанд ва гардишҳо аз ҷониби корбарон нодида гирифта мешаванд.
Мафҳумҳои асосӣ
CA/Имзокунанда: мақомоти сертификатсия (ҷамъиятӣ ё дохилӣ).
Занҷир (пурра): шаҳодатномаи барг + фосилавӣ + реша (одатан дар анборҳои муштариён реша мегирад).
SAN (Номи алтернативии мавзӯъ): рӯйхати доменҳо/IP барои як шаҳодатнома (multi-SAN).
Ваҳшӣ: '.example. com '- барои бисёр зергурӯҳҳо қулай аст, тасдиқи DNS-ро талаб мекунад.
Степлинги OCSP: сервер ҳолати охирини бекоркуниро татбиқ мекунад; таъхир ва вобастагиро аз OCSP-ҳои беруна коҳиш медиҳад.
HPKP: кӯҳна/истифода намешавад; ба ҷои ин, гузоришҳои КТ ва гигиенаи калидӣ.
CT (Шаффофияти шаҳодатномаҳо): гузоришҳои барориши ҷамъиятӣ - барои назорати нашри қалбакӣ муҳим аст.
Профили крипто ва калидҳо
Алгоритмҳо:- ECDSA (P-256) - тез ва паймон; барои муштариёни муосир бартарӣ дошт.
- RSA-2048/3072 - ҳоло ҳам мувофиқ; мумкин аст дугона-сертификат баргузор шавад (RSA + ECDSA).
- Насли калидӣ: танҳо дар тарафи мақсаднок (хусусиёнро тавассути шабака интиқол надиҳед), ҳуқуқи дастрасиро ҳифз кунед ('0600').
- HSM/KMS: барои минтақаҳои муҳим (пардохт/PII) калидҳои нигоҳдорӣ дар HSM/KMS, амалиёти аудиториро фаъол созед.
- Мӯҳлати ҳаёт: Шаҳодатномаҳои кӯтоҳ (90 рӯз/30 рӯз барои дохилӣ) гардиши мунтазамро ҳавасманд мекунанд ва хатари созишро коҳиш медиҳанд.
Моделҳои меъмории идоракунии TLS
1. CA ҷамъиятӣ тавассути ACME (Биёед рамзгузорӣ кунем/Buypass/ва ғайра)
Санҷиш: HTTP-01 (тавассути веб-сервер/Ingress) ё DNS-01 (барои доменҳои ваҳшӣ/берун аз ҷараён).
Тарафдор: ройгон/автоматӣ, эътимоди васеъ. Омӯз: вобастагии беруна.
2. Корпоратсияи дохилии CA
Воситаҳо: Hashi-Corp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL.
Тарафдор: сиёсати фармоишӣ, MTLS, TTL кӯтоҳ, озод кардани доменҳои дохилӣ. Омӯз: тақсимоти реша, идоракунии эътимод.
3. Гибрид
CA ҷамъиятӣ барои корбарони хориҷӣ; CA-и дохилӣ - барои хизматрасонӣ-ба-хизматрасонӣ (MTLS), каналҳои кластерӣ ва маъмурӣ.
Намунаҳои навсозии худкор (навсозӣ)
Принсипҳои умумӣ
Ҳадди навсозӣ: аз '≤ 30' рӯз пеш аз ба охир расидани мӯҳлат оғоз кунед; барои хизматрасониҳои муҳим - дар рӯзҳои '≤ 45'.
Вақти сифр: сертификати нав, ивазкунии атом, азнавборкунии ҳамвор бидуни пайвастшавӣ.
Нигоҳдории дукарата (кабуд/сабз): сертификати ҷорӣ ва навбатиро нигоҳ доред; гузариш - тавассути symlink ё сирри санҷидашуда.
Огоҳӣ: Огоҳии 45/30/14/7/3/1; ҳушдори алоҳида ҳангоми нокомии мушкилоти ACME.
Мизоҷони ACME ва барномаи онҳо
certbot/acme. ш/лего: агентҳои сабук дар VM/луч-металл.
cert-manager (Kubernetes): операторе, ки бо Issuer/Clusterissuer кор мекунад; озодкунӣ/навсозиро автоматӣ мекунад ва ба Secret менависад.
step-ca/Vault Agent: озодкунии худкор/гардиш бо TTL-ҳои кӯтоҳ, намунаҳои sidecar барои навсозии калидҳо ва занҷирҳо.
Равандҳо барои Кубернетес
cert-manager (Намунаи Issuer барои биёед рамзгузорӣ кунем HTTP-01 тавассути Ingress):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
Дархости сертификат:
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 ҳангоми навсозии 'Secret' ба таври худкор рух медиҳад. Илова кардани 'ssl-ecdh-curve: secp256r1' ва имкон медиҳад, ки степлятсияи OCSP тавассути/Config
Равандҳо барои VM/Bare-metal
Certbot (HTTP-01):bash sudo certbot certonly --webroot -w /var/www/html -d example. com -d www.example. com \
--deploy-hook "systemctl reload nginx"
Давра ба давра 'навсозии certbot' тавассути таймерҳои системавӣ.
Барои корти ваҳшӣ, DNS-01 (провайдери плагин) ва шабеҳи '--deploy-hook' -ро истифода баред.
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
Нигоҳ доштани 'fullchain. pem 'i' privkey. pem 'дар зери роҳҳои устувор (пайвастшавӣ ба файлҳои санҷидашуда), пас' азнавборкунии nginx -s '.
PKI дохилӣ ва m-TLS
PKI PKI (нақши намуна):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
Нашри худкор: тавассути Vault Agent Injector (K8s) ё sidecar; барнома сертификатро аз файли/FS-watcher дубора мехонад.
TTL кӯтоҳ: 24-720 соат, ки гардиши мунтазамро ҳавасманд мекунад ва арзиши калиди дуздидашударо коҳиш медиҳад.
MTLS: додани шаҳодатномаҳои муштарӣ барои хидматҳои/нақшҳои мушаххас; дар вуруд - TLS мутақобила дар воридшавӣ/sidecar-proxy.
Амалиёти бехатар
Мубодилаи асрори: калидҳои хусусӣ - танҳо дар мизбон/подабон, дастрасӣ аз рӯи принсипи имтиёзҳо.
Ҳуқуқи файл: '600' барои калид; соҳиб - истифодабарандаи раванд.
Давраи имтиёзнок: 'Навсозӣ' -ро таъин кунед, то барои хатогиҳои DNS/ACME/провайдер кофӣ бошад.
Ҷойгиркунии OCSP: дар ҷабҳаҳо фурӯзон шавед; тозагии ҷавобро назорат кунед (одатан 12-72 соат).
HSTS: тадриҷан фаъол шавед (бидуни "пешакӣ" дар оғоз), боварӣ ҳосил кунед, ки таҳвили дурусти HTTPS ҳама мундариҷа.
Dual-cert (RSA + ECDSA): мутобиқат ва иҷроишро беҳтар мекунад; ECDSA-ро ба муштариёни муосир диҳед.
Мониторинг ва SLO
Ченакҳо ва чекҳо:- Якчанд рӯз пеш аз мӯҳлат (ченак) барои ҳар як домен/махфӣ; SLO: "сертификат аз <7 рӯз то ба охир нарасидааст".
- Эътибори занҷир (линтинг), мутобиқати SAN ба доменҳои зарурӣ/IP.
- Ҳолати часпонидани OCSP (тару тозаи посух).
- Фоизи мушкилоти ACME бомуваффақият/номуваффақ.
- Дастони Leitency TLS, версияҳои протокол/шифрҳо (аудит).
- Огоҳӣ: 30 рӯз то ба охир расидани мӯҳлат.
- Танқид: 7 рӯз/нокомӣ 'нав кунед'.
- Саҳифа: 72 соат/занҷири беэътибор дар prod/no stapling OCSP.
Ҳодисаҳо ва камбудиҳо
Таъхир дар сертификат: муваққатан аз нав чоп ва дастӣ ҷойгир кунед, RCA-ро ислоҳ кунед (чаро навсозӣ кор накард, маҳдудиятҳои DNS/API).
Созишномаи асосӣ: азнавбарқароркунии фаврӣ/бекоркунӣ, гардиши асрҳо, аудити дастрасӣ, гардиши провайдери DNS/нишонаҳои ҳисоби ACME.
Занҷираи нодуруст: кони фаврии 'fullchain' дуруст, боркунии маҷбурии ҷабҳаҳо.
Қулф кардан ба провайдери DNS: нигоҳ доштани роҳи санҷиши нусхабардорӣ (HTTP-01) ё DNS дуюмдараҷа.
Рӯйхати назорати худкори навсозӣ
1. Моделро интихоб кунед (оммавии CA тавассути ACME/PKI/гибрид).
2. Профили крипторо муайян кунед: ECDSA-P256, агар лозим бошад, сертификати дугона бо RSA-2048.
3. Танзими агенти автоматӣ (cert-manager, certbot, acme. ш, агенти Vault).
4. Ташкили ивазкунии сифр-вақти корӣ (шакли symlink, ingress-reading/NGINX/Envoy).
5. Степлинги OCSP ва HSTS-ро фурӯзон кунед (дар марҳилаҳо).
6. Илова кардани санаҳои ҳушдор ва ҳолати мушкил; таъин SLO.
7. Раванди озодкунии шиша ва дастиро ҳуҷҷатгузорӣ кунед.
8. Машқҳои "қалбакӣ" гузаронед: DNS-01 шикаста, афтиши ACME, мӯҳлати решавӣ/мобайнӣ.
9. Баррасии дастрасӣ ба калидҳои хусусӣ, гардиши нишонаҳои провайдери DNS ва ҳисобҳои ACME.
Хусусиятҳо барои IGaming/fintech
PCI DSS/PII: Suites қатъии Cipher, маҷбур TLS 1. 2+/1. 3, рамзҳои заиф/фишурдасозиро хомӯш кунед, сессияро бидуни созишҳои амниятӣ барқарор кунед.
Тақсимоти домейн: шаҳодатномаҳои алоҳида барои субдомайнҳо ва маъмурон; барои дастраскунандагони мундариҷа - занҷирҳои ҷудошуда.
Аудит ва сабти ном: сабти сабт/ёдраскунӣ/гардиш; артефактҳои CI/CD-ро имзо кунед.
Бисёрфарҳангӣ: Эмитентҳои маҳаллӣ ба минтақаҳо, то аз камбудиҳои байниминтақавӣ вобаста набошанд.
Танзимоти намуна
NGINX (RSA + ECDSA, stapling OCSP)
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;
Кушодани SSL: 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: профил ва барориш
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
Оё ба ман ваҳшӣ лозим аст?
Агар subdomains нав аксар вақт пайдо шаванд, ҳа (тавассути DNS-01). Дар акси ҳол, барои доменҳои возеҳ SAN-ро истифода баред.
Чӣ бояд интихоб кард: cert-manager ё certbot?
Кубернетес → сертификат-менеҷер. VM/microservices аз K8s → certbot/lego/acme. ш. PKI дохилӣ → Vault/step-ca.
Оё TTL метавонад ба як рӯз кам карда шавад?
Барои MTLS дохилӣ, бале, агар автоматизатсия/sidecar гардишро кафолат диҳад ва барномаҳо метавонанд дубора гарм шаванд.
Чӣ тавр DNS-01 таъмин кардан мумкин аст?
Дастрасии алоҳида/ҳадди аққал ба минтақа, гардиши калидӣ, дастрасии IP API, аудитро маҳдуд мекунад.
Ҷамъ
Идоракунии боэътимоди TLS ин маҷмӯи профили дурусти крипто, озодкунӣ ва таҷдиди автоматӣ, гардиши сифрӣ, мушоҳида ва тартиботи возеҳи вокуниш ба ҳодисаҳо мебошад. Лӯлаи ACME/PXI созед, ҳушёрии қатъӣ илова кунед ва сенарияҳои "фавқулодда" -ро мунтазам омӯзед - ва шаҳодатномаҳои мӯҳлати истифодашуда дигар манбаи пейджерҳои шабона нахоҳанд буд.