TMS հավաստագրեր և ավտոմատ երկարացում
Ինչու՞ է դա անհրաժեշտ
TFC-ն կոդավորում է ռուսական «հաճախորդը ռուսական ծառայություն», ապացուցում է սերվերի իսկությունը (և mTRC-հաճախորդի դեպքում), ինչպես նաև պաշտպանում է փոխարինումից։ Հիմնական ռիսկերը 'հավաստագրերի ուշացում, թույլ բանալիներ, վստահության սխալ շղթա, ձեռքով ընթացակարգեր։ Հոդվածի նպատակն է նկարագրել ճարտարապետությունը, որտեղ հավաստագրերը միշտ արդիական են, և տարհանումները անցնում են աննկատ օգտագործողների համար։
Հիմնական հասկացությունները
CA/Ստորագրողը 'հավաստագրման կենտրոն (հանրային կամ ներքին)։
Chain (fullchain) 'տերևային վկայագիր + միջանկյալ + կորեային (սովորաբար հաճախորդի պահեստներում)։
SAN (Internative Alternative Name) ՝ մեկ կոմպոզիցիայի համար (մուլտֆիլմ-SAN)։
Wildcard: `.example. com '- հարմար է բազմաթիվ փոխարինումների համար, պահանջում է RF-valivation։
OCMS stapling: սերվերը թարմ արձագանք է տալիս։ նվազեցնում է արտաքին OCSA-ի ուշացումները և կախվածությունը։
HPKP 'հնացած/չօգտագործել; փոխարենը 'CT-logs և հիմնական հիգիենան։
CT (Certificate Transparency) 'հանրային լոգներ, որոնք կարևոր են կեղծ համարները վերահսկելու համար։
Կրիպտոպրոֆիլ և բանալիներ
Ալգորիթմներ
ECDPS (P-256) - արագ և կոմպակտ; նախընտրելի է ժամանակակից հաճախորդների համար։
RSA-2048/3072-ը դեռ միասին է։ Դուք կարող եք պահել dj-com (RFC + ECDTS)։
Գեներացիան բացատրում է. Միայն ռուսական կողմից (չի փոխանցվում ցանցի սեփականատերերին), պաշտպանել հասանելիության իրավունքները («0600»)։
HSM/KMS 'կրիտիկական գոտիների համար (PII) պահեք բանալիները HSM/KLS-ում, միացրեք վիրահատությունների աուդիտը։
Կյանքի ժամանակահատվածները 'կարճ հավաստագրեր (90 օր/30 օր ներքին համար) խրախուսում են հաճախակի ռոտացիան և նվազեցնում են փոխզիջման ռիսկը։
TFC կառավարման ճարտարապետական մոդելները
1. Հանրային CA-ն ACBS-ի միջոցով (Let's Encrypt/Buypass/և այլն)
Վալիդացիան ՝ HTTP-01 (վեբ սերվերի/Ingress) կամ CSO-01 (wildcard/newsports)։
Պլյուսներ ՝ անվճար/ավտոմատացված, լայն վստահություն։ Մինուսները ՝ արտաքին կախվածությունները։
2. Ներքին կորպորատիվ CA
Գործիքներ ՝ HashiProp Vox PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL։
Պլյուսներ ՝ կաստոմային քաղաքականություններ, mTSA, կարճ TTL, ներքին ածխաջրածինների արտադրություն։ Մինուսները 'արմատի բաշխումը, վստահության կառավարումը։
3. Հիբրիդ
Հանրային CA արտաքին օգտագործողների համար; Ներքին CA-ը-k ծառայության համար (mTSA), միջքլաստիկական ջրանցքներ և վերանորոգումներ։
Ավտոմատ երկարացման արտոնագրերը (renew) (renew)
Ընդհանուր սկզբունքներ
Երկարացման շեմն է 'սկսել "07 30' օր մինչև 2019 թվականը։ քննադատական ծառայությունների համար '«07 45» օրվա ընթացքում։
Zero-downtime-ը 'նոր շարժիչի արտադրություն, ատոմային փոխարինում, լողացող reload առանց ծածկագրման։
Կրկնակի պահպանումը (blue/green) 'պահել ներկա և հաջորդ cript; փոխակերպումը 'www.link կամ տարբերակված secret միջոցով։
Ալերթինգ 'զգուշացումներ 45/30/14/7/3/1 օրվա ընթացքում; առանձին ալերտ ACFC-Chelenge-ի ձախողման ժամանակ։
ACERT հաճախորդները և դրանց օգտագործումը
certbot / acme. sh/lego: թեթև կոմպոզիցիաներ VM/bare-metal-ում։
com-111 (Kubernetes) - օպերատոր, որը աշխատում է Issuer/ClusterIssuer-ի հետ; ավտոմատիզացնում է rele.ru/renew և գրում է Secret-ում։
step-ca/Vast Agent: Ավտոմատ արտադրություն/նավարկություն կարճ TTL, sidecar-patterna-ը թարմացնելու համար։
Kubernetes գործընթացները
com-2019 (օրինակ Issuer Let's Encrypt, HTP-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 "և միացրեք OCSA stapling-ը/SystigMap-ի միջոցով։
Գործընթացներ 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 renew» -ի միջոցով www.emd timer-ի միջոցով։
Wildcard-01 (պրովայդեր-պլագին) և նման «--deploy-hook»։
acme. sh (DNS-01, wildcard):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 'կայուն ճանապարհների տակ (www.link տարբերակված ֆայլերի վրա), ապա' nginx-s reload "։
Ներքին PKI և mTSA
HashiProp Vox 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
Auturection: Vast Agent Injector (K8s) կամ sidecar; ծրագիրը հաշվում է ֆայլից/FS-watcher։
Կարճ TTL: 24-720 ժամ, որը խթանում է հաճախակի միգրացիան և նվազեցնում է գողացված ստեղնաշարի արժեքը։
MT.RU 'հաճախորդների հավաստագրեր տվեք հատուկ ծառայությունների/դերերի համար։ Մուտքի մոտ mut.ru TSA-ն ingress/sidecar-proxy-ում է։
Անվտանգ գործողություն
Գաղտնիքների բաժանումը 'մասնավոր բանալիները' միայն հանրակացարանի/ենթախմբի վրա, հասանելիությունը ամենափոքր արտոնությունների սկզբունքով։
Ֆայլերի իրավունքները ՝ «600» բանալին. սեփականատերը գործընթացի օգտագործողն է։
Գրեյս ժամանակահատվածը 'տեղադրեք «renewBefore» բավարար, որպեսզի հաշվի առնենք RF/ACTS/պրովայդերի ձախողումները։
OCSA Stapling: Ներառել ճակատներում; հետևել թարմ պատասխանին (սովորաբար 12-72 ժամ)։
HSTS 'միացնել աստիճանաբար (առանց «preload»), համոզվելով ճիշտ HTTPS-ի ամբողջ բովանդակության առաքման մեջ։
Dance-case (RFC + ECDTS) 'բարելավում է համատեղելիությունը և արտադրողականությունը։ ժամանակակից հաճախորդներին տվեք ECDTS-ին։
Windows և SLO
Մետրիկները և ստուգումները
Օրեր մինչև 2019 (gauge) յուրաքանչյուր կոդով/գաղտնիքով։ SLO '«ոչ մի cript <7 օր մինչև expiry»։
Շղթայի (linting), SAN-ի համապատասխանությունը պահանջվող ստանդարտներին/IP։
OCMS stapling (պատասխանների թարմ) կարգավիճակը։
Հաջողակ/անհաջող ACERT-Chelengy-ի մասնաբաժինը։
Լեյտենսին TRC-ձեռագործություն, արձանագրության/ծածկագրի տարբերակները (audit)։
Ալերտա (մակարդակների օրինակ)
Warn: 30 օր մինչև 2019 թվականը։
Crit: 7 օր/ձախողումը 'renew'։
Page: 72 ժամ/ոչ որակյալ շղթա վաճառքում/բացակայում է OCMS stapling-ը։
Պատահականներն ու արձագանքները
Ուշացումը բացատրվում է. Ժամանակավորապես վերագտնել և սեղմել ձեռքով, ամրագրել RCA (ինչու չի աշխատել renew, արգելափակել III/API սահմանափակումները)։
Ստեղնաշարի փոխզիջումը 'վերափոխված վերափոխում/ակնարկ, գաղտնիքների վերացում, հասանելիության աուդիտ, RF-պրովայդերի/ASME հաշիվի հոսքերի վերացում։
Սխալ շղթա 'հրատապ «fullchain», հարկադիր reload։
Nokk-in պրովայդեր IV-ին 'պահպանեք վալիդացիայի պահեստային ճանապարհը (HTTP-01) կամ հիբրիդային RF-ը։
Chek-Show-Show-Show-
1. Ընտրեք մոդել (հանրային CA ACFC/ներքին PKI/հիբրիդ)։
2. Քրիտոպրոֆիլ ՝ ECDPS-P256, անհրաժեշտության դեպքում drum-cript RFC-2048 հետ։
3. Պարարտական ավտոմատ գործակալ (cox-112, certbot, acom. sh, Vault Agent).
4. Կազմակերպեք zero-downtime փոխարինումը (www.link-pattern, hot-reload ingress/NGINX/Envoy)։
5. Միացրեք OCMS stapling և HSTS (ոչ պաշտոնական)։
6. Ավելացրեք Ալերթինգը և Չելենջեյի արձանները։ գրել sLO-ն։
7. Փաստաթղթավորեք break-glass գործընթացները և ձեռքի արտադրությունը։
8. Անցկացրեք «ֆեյլային» ուսուցումները 'կոտրված RF-01, ACFC-ի անկումը, որը լրանում է արմատը/միջանկյալ։
9. Վերանայեք մասնավոր բեկորների հասանելիությունը, հաղորդեք RF-պրովայդերի և ACFC-ի հաշիվները։
IGaming/fintech
PCI DSS/PII 'խիստ Cipher Suites, հարկադիր TMS 1։ 2+/1. 3, անջատել թույլ ծածկագրերը/ագրեսիան, session resumption առանց անվտանգության փոխզիջումների։
Ածխաջրածինների սեգմենտացիան 'որոշակի հավաստագրեր մետրոպոլիտենի ենթամարմինների և օպտիկայի համար։ բովանդակության պրովայդերների համար մեկուսացված շղթաներ են։
Աուդիտ և տրամաբանություն. Արձանագրեք թողարկումը/վերանայումը/հաշվարկումը; ստորագրեք CI/CD արտեֆակտները։
Բազմաբնույթ ՝ տեղական Issuer-ները տարածաշրջանների վրա, որպեսզի կախված չլինեն քրոսային-ռեգիոնային մերժումներից։
Միգրացիայի օրինակներ
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 կարիք ունի։
Եթե հաճախ հայտնվում են նոր փոխարինումներ, այո (RF-01 միջոցով)։ Այլ կերպ օգտագործեք մուլտֆիլմի-SAN-ը ակնհայտ օրինագծերի համար։
Ի՞ նչ ընտրել 'com-210 կամ certbot։
Kubernetes → cert-manager. VM/միկրովայրկյաններ K8s-ից դուրս www.certbot/lego/ac.ru-ից։ sh. Ներքին PKI no Vox/step-ca։
Կարո՞ ղ եք կրճատել TTL-ը մինչև օր։
Ներքին mTSA-ի համար, այո, եթե ավտոմատիզացիան/sidecar երաշխավորում են նավարկումը և ծրագրերը կարող են hot-reload։
Ինչպե՞ ս պաշտպանել RF-01։
Առանձին հոսանք/նվազագույն հասանելիություն գոտի, կոդավորման ռոտացիա, սահմանափակել IP API հասանելիությունը, վարել audit։
Արդյունքը
TRC-ի հուսալի կառավարումը ճիշտ կրիպտոպրոֆիլ, ավտոմատացված արտադրություն և երկարացում, zero-downtime լուծումներ, դիտարկումներ և հստակ ընթացակարգեր է, որոնք կատարվում են redons-ի կողմից։ Կառուցեք ACFC/PXI փոխակրիչը, ավելացրեք խիստ ալերտինգը և պարբերաբար մարզեք «վթարային» սցենարները, և վերջին հավաստագրերը կդադարեն լինել գիշերային լանդշաֆտների աղբյուրը։