TLS күбөлүктөрү жана автоматтык узартуу
Эмне үчүн керек
TLS трафикти шифрлейт, сервердин аныктыгын тастыктайт (жана mTLS менен - кардар), ошондой эле алмаштыруудан коргойт. Негизги тобокелдиктер: сертификаттардын кечиктирилиши, алсыз ачкычтар, ишенимдин туура эмес чынжырчасы, кол менен жасалган процедуралар. Макаланын максаты - сертификаттар дайыма актуалдуу болгон жана ротациялар колдонуучулар үчүн байкалбаган архитектураны сүрөттөө.
Негизги түшүнүктөр
CA/Кол: күбөлүк борбору (коомдук же ички).
Chain (fullchain): барак күбөлүк + аралык + тамыр (адатта, кардарлардын сактоо тамыры).
SAN (Subject Alternative Name): бир күбөлүк үчүн домен/IP тизмеси (Multi-SAN).
Wildcard: `.example. com '- көптөгөн поддомендер үчүн ыңгайлуу, DNS валидациясын талап кылат.
OCSP stapling: Server кайра чакыртып алуунун жаңы статусу колдонулат; кечигүү жана тышкы OCSP көз карандылыгын азайтат.
HPKP: эскирген/колдонулбайт; анын ордуна - CT-логи жана негизги гигиена.
CT (Certificate Transparency): Public Logs берүү - жасалма чыгарылыштарды көзөмөлдөө үчүн маанилүү.
Криптопрофил жана ачкычтар
Алгоритмдер:- ECDSA (P-256) - тез жана компакт; заманбап кардарлар үчүн артыкчылык берилет.
- RSA-2048/3072 - дагы эле шайкеш; эки-cert (RSA + ECDSA) сактоого болот.
- Ачкычтарды генерациялоо: максаттуу тарапта гана (жеке менчик ээлери тармак аркылуу берилбейт), кирүү укуктарын коргоо ('0600').
- HSM/KMS: критикалык аймактар үчүн (төлөм/PII) HSM/KMSде ачкычтарды сактаңыз, операциялардын аудитин киргизиңиз.
- Өмүр: кыска күбөлүктөр (ички үчүн 90 күн/30 күн) тез-тез айланууга түрткү жана компромисс коркунучун азайтат.
Архитектура башкаруу моделдери TLS
1. ACME аркылуу коомдук CA (Let's Encrypt/Buypass/ж.б.)
Валидация: HTTP-01 (веб-сервер/Ingress аркылуу) же DNS-01 (wildcard/агымсыз домендер үчүн).
Артыкчылыктары: акысыз/автоматташтырылган, кеңири ишеним. Кемчиликтери: тышкы көз карандылык.
2. Ички юридикалык CA
Куралдар: HashiCorp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL.
Артыкчылыктары: ылайыктуу саясатчылар, mTLS, кыска TTL, ички домен чыгаруу. Кемчиликтери: тамыр бөлүштүрүү, ишеним башкаруу.
3. Гибрид
Тышкы колдонуучулар үчүн ачык CA; ички CA - кызмат үчүн (mTLS), кластерлер аралык каналдар жана администраторлор.
Автоматтык узартуу үлгүлөрү (renew)
Жалпы принциптер
узартуу босогосу: '≤ 30' күн өткөндөн кийин башталат; маанилүү кызматтар үчүн - '≤ 45' күн.
Zero-downtime: жаңы күбөлүк чыгаруу, атомдук алмаштыруу, жылмакай reload үзүлбөгөн байланыштар.
Double кармоо (blue/green): учурдагы жана кийинки cert сактоо; которуу - аркылуу symlink же чыгаруу жашыруун.
Alerting: 45/30/14/7/3/1 күн үчүн эскертүү; ACME чакырыгы ишке ашпай калганда өзүнчө алерт.
ACME кардарлар жана аларды колдонуу
certbot / acme. sh/lego: VM/bare-металлда жеңил агенттер.
cert-manager (Kubernetes): Issuer/ClusterIssuer менен иштеген оператор; release/renew автоматташтырып, жашыруун жаздырат.
step-ca/Vault Agent: кыска TTL менен автоматтык чыгаруу/айлануу, ачкычтарды жана чынжырларды жаңыртуу үчүн sidecar үлгүлөрү.
Kubernetes үчүн жараяндар
cert-manager (Let's Encrypt үчүн Issuer мисалы, Ingress аркылуу 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
күбөлүк суроо:
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 ысык алмаштыруу "Жашыруун" жаңыртканда автоматтык түрдө ишке ашат. 'ssl-ecdh-curve: secp256r1' кошуу жана аннотациялар/ConfigMap аркылуу OCSP stapling кирет.
VM/Bare-металл үчүн жараяндар
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 renew' systemd timer аркылуу.
Wildcard үчүн 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` и `privkey. pem 'туруктуу жолдордун астында (symlink версияланган файлдарга), андан кийин' nginx -s reload '.
Ички PKI жана mTLS
HashiCorp Vault 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: конкреттүү кызматтар/ролдор үчүн кардар күбөлүктөрдү берүү; кире бериште - ingress/sidecar-proxy боюнча mutual TLS.
Коопсуз иштетүү
Сырларды бөлүштүрүү: Жеке ачкычтар - бир гана хост/поп, минималдуу артыкчылыктар боюнча кирүү.
Файлдардын укуктары: ачкыч үчүн '600'; ээси - процесстин колдонуучусу.
Grace-мезгил: DNS/ACME/провайдерди эске алуу үчүн жетиштүү 'renewBefore' орнотуу.
OCSP Stapling: фронтто күйгүзүү; жооп сергек (адатта 12-72 саат).
HSTS: акырындык менен күйгүзүү (башталышында 'preload' жок), бүт мазмундун туура HTTPS-жеткирилишине ынануу.
Dual-cert (RSA + ECDSA): шайкештикти жана аткарууну жакшыртат; заманбап кардарларга ECDSA берүү.
Мониторинг жана SLO
Метрика жана текшерүү:- Күн мөөнөтү (gauge) ар бир домен/жашыруун; SLO: "жок cert менен <7 күн expiry".
- Чынжырдын ырааттуулугу (линтинг), талап кылынган домендердин/IP SAN шайкештиги.
- OCSP stapling статусу (жооптун жаңылыгы).
- Ийгиликтүү/ийгиликсиз ACME чакырыктарынын үлүшү.
- Лейтенси TLS-кол алышуу, протокол версиясы/шифрлер (аудит).
- Warn: 30 күн аяктаганга чейин.
- Crit: 7 күн/ийгиликсиз 'renew'.
- Page: 72 саат/продукт эмес чынжыр/OCSP stapling жок.
Окуялар жана артка кайтаруулар
Мөөнөтү өтүп кеткен күбөлүк: убактылуу кайра чыгаруу жана кол менен жылуулоо, RCA (эмне үчүн renew, DNS блоктору/API чектөөлөрү иштебей калды) бекитүү.
Ачкычтын компроматы: дароо кайра чыгаруу/кайра чакыртып алуу, сырларды айлантуу, кирүү аудити, DNS провайдери/ASME аккаунту токендерин айлантуу.
Туура эмес чынжыр: туура 'fullchain' шашылыш деплой, фронтторду мажбурлоо.
DNS жөнөтүүчүгө кулпусу: резервдик валидация жолун (HTTP-01) же экинчилик DNS сактаңыз.
Автоунаа өндүрүшүн киргизүүнүн чек-тизмеси
1. моделин тандоо (ACME/ички PKI/гибрид аркылуу ачык CA).
2. Криптопрофилдерди аныктаңыз: ECDSA-P256, керек болсо, RSA-2048 менен эки тараптуу.
3. автоматтык агент (cert-manager, certbot, acme. sh, Vault Agent).
4. zero-downtime алмаштыруу уюштуруу (symlink-үлгү, hot-reload ingress/NGINX/Envoy).
5. OCSP stapling жана HSTS (этап-этабы менен) кирет.
6. Чакырыктардын мөөнөттөрүн жана статусун кошуу; SLO жазып.
7. Break-glass жана кол менен чыгаруу процесстерин документтештирүү.
8. "Фейлик" машыгууларды өткөрүңүз: сынган DNS-01, ACME кулашы, бүткөн тамыр/аралык.
9. Жеке ачкычтарга жетүүнү карап чыгыңыз, DNS провайдеринин токендерин жана ACME аккаунттарын ротациялаңыз.
iGaming/Fintech үчүн өзгөчөлүктөрү
PCI DSS/PII: катуу Cipher Suites, мажбурлоо TLS 1. 2+/1. 3, алсыз шифрлерди/компрессияны өчүрүү, коопсуздук компромисссиз session resumption.
Домендерди сегментациялоо: төлөм поддомендери жана администраторлор үчүн өзүнчө сертификаттар; мазмун провайдерлери үчүн - обочолонгон чынжырлар.
Аудит жана логика: чыгарууну/кайра карап чыгууну/айланууну жазыңыз; CI/CD артефакттарына кол коюңуз.
Көп аймактуу: региондордо жергиликтүү Issuer-s кросс-аймактык баш тартуу көз каранды эмес.
Конфигурация мисалдары
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: кароо жана чыгаруу
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 керекпи?
Эгерде жаңы поддомендер көп пайда болсо - ооба (DNS-01 аркылуу). Болбосо, ачык домендер үчүн көп-SAN колдонуу.
Эмне тандоо керек: cert-manager же certbot?
Kubernetes → cert-manager. VM/микросервис K8s → certbot/lego/acme. sh. Ички PKI → Vault/step-ca.
TTL бир күнгө чейин кыскартууга болобу?
ички mTLS үчүн - ооба, эгерде автоматташтыруу/sidecar айланууга кепилдик берет жана тиркемелер hot-reload билишет.
DNS-01 кантип коргоо керек?
Өзүнчө токен/аймакка минималдуу жетүү, ачкычтарды айлантуу, IP API жетүү чектөө, аудит жүргүзүү.
Жыйынтык
TLS ишенимдүү башкаруу туура kriptoprofil, автоматташтырылган чыгаруу жана узартуу, zero-downtime айлануу, байкоо жана так жол-жоболору окуя-респонс айкалышы болуп саналат. ACME/PXI конвейерин куруу, катуу алертингди кошуу жана "авариялык" сценарийлерди такай үйрөтүү - жана мөөнөтү өтүп кеткен сертификаттар түнкү пейджерлердин булагы болбой калат.