टीएलएस प्रमाणपत्र और स्वचालित नवीकरण
आपको इसकी आवश्यकता क्यों है?
TLS ट्रैफिक "kliyent↔servis" को एन्क्रिप्ट करता है, सर्वर की प्रामाणिकता की पुष्टि करता है (और mTLS - क्लाइंट के साथ), और स्पूफिंग से भी बचाता है। मुख्य जोखिम: प्रमाणपत्र देरी, कमजोर कुंजी, गलत विश्वास श्रृंखला, मैनुअल प्रक्रियाएं। लेख का उद्देश्य उस वास्तुकला का वर्णन करना है जिसमें प्रमाणपत्र हमेशा प्रासंगिक होते हैं और रोटेशन उपयोगकर्ताओं द्वारा किसी का ध्यान नहीं
बुनियादी अवधारणाएँ
सीए/हस्ताक्षरकर्ता: प्रमाणन प्राधिकरण (सार्वजनिक या आंतरिक)।
चेन (फुलचेन): पत्ती प्रमाणपत्र + मध्यवर्ती + रूट (आमतौर पर क्लाइंट रिपॉजिटरी में जड़)।
सैन (विषय वैकल्पिक नाम): एक प्रमाणपत्र (मल्टी-सैन) के लिए डोमेन/आईपी की सूची।
वाइल्डकार्ड: '.example. com '- कई उपडोमेन के लिए सुविधाजनक, DNS सत्यापन की आवश्यकता है।
OCSP स्टेपलिंग: सर्वर नवीनतम निरसन स्थिति लागू करता है; बाहरी OCSP पर विलंबता और निर्भरता को कम करता है।
HPKP: अप्रचलित/उपयोग में नहीं; इसके बजाय, सीटी लॉग और प्रमुख स्वच्छता।
सीटी (प्रमाणपत्र पारदर्शिता): सार्वजनिक जारी लॉग - नकली रिलीज को नियंत्रित करने के लिए महत्वपूर्ण।
क्रिप्टो प्रोफ़ाइल और कुंजियाँ
एल्गोरिदम:- ECDSA (P-256) - तेज और कॉम्पैक्ट; आधुनिक ग्राहकों के लिए पसंद
- RSA-2048/3072 - अभी भी संगत; दोहरे-प्रमाण (RSA + ECDSA) आयोजित किए जा सकते हैं।
- मुख्य पीढ़ी: केवल लक्ष्य पक्ष पर (नेटवर्क पर निजी लोगों को स्थानांतरित न करें), पहुंच अधिकारों ('0600') की रक्षा करें।
- एचएसएम/केएमएस: एचएसएम/केएमएस में महत्वपूर्ण क्षेत्रों (भुगतान/पीआईआई) स्टोर कुंजियों के लिए, ऑडिट संचालन सक्षम करें।
- जीवनकाल: लघु प्रमाणपत्र (आंतरिक के लिए 90 दिन/30 दिन) लगातार रोटेशन को प्रोत्साहित करते हैं और समझौता करने के जोखिम को कम करते हैं।
टीएलएस प्रबंधन के वास्तुशिल्प मॉडल
1. ACME के माध्यम से सार्वजनिक CA (चलो एन्क्रिप्ट/Buypass/आदि)
सत्यापन: HTTP-01 (वेब सर्वर/इंग्रेस के माध्यम से) या DNS-01 (वाइल्डकार्ड/आउट-ऑफ-स्ट्रीम डोमेन के लिए)।
पेशेवरों: मुफ्त/स्वचालित, व्यापक विश्वास। विपक्ष: बाहरी निर्भरता।
2. आंतरिक कॉर्पोरेट सीए
उपकरण: HashiCorp वॉल्ट PKI, स्मॉलस्टेप (स्टेप-सीए), Microsoft AD CS, CFSSL।
पेशेवर: कस्टम नीतियां, एमटीएलएस, लघु टीटीएल, आंतरिक डोमेन के लिए रिलीज़। विपक्ष: रूट वितरण, ट्रस्ट प्रबंधन।
3. हाइब्रिड
बाहरी उपयोगकर्ताओं के लिए सार्वजनिक सीए; आंतरिक सीए - सेवा-से-सेवा (एमटीएलएस), अंतर-क्लस्टर चैनल और प्रशासन के लिए।
स्वचालित नवीकरण पैटर्न (नवीनीकरण)
सामान्य सिद्धांत
नवीनीकरण सीमा: समाप्ति से पहले '≤ 30' दिन से शुरू; महत्वपूर्ण सेवाओं के लिए - '≤ 45' दिनों पर।
शून्य-डाउनटाइम: कनेक्शन तोड़ ने के बिना एक नया प्रमाणपत्र, परमाणु प्रतिस्थापन, चिकनी पुनः लोड जारी करें।
डबल होल्ड (नीला/हरा): वर्तमान और अगले प्रमाण को संग्रहीत करें; symlink या versioned रहस्य के माध्यम से स्विचिंग।
अलर्टिंग: 45/30/14/7/3/1 दिन की चेतावनी; ACME चुनौती की विफलता के दौरान एक अलग अलर्ट।
एसीएमई क्लाइंट और उनके आवेदन
certbot/acme। श/लेगो: वीएम/नंगे धातु पर प्रकाश एजेंट।
सर्टिफिकेट-मैनेजर (कुबर्नेट्स): जारीकर्ता/क्लस्टरिसुअर के साथ काम करने वाला ऑपरेटर; रिलीज/नवीनीकरण स्वचालित करता है और सीक्रेट को लिखता है
स्टेप-सीए/वॉल्ट एजेंट: स्वचालित रिलीज/छोटे टीटीएल के साथ रोटेशन, चाबियों और चेन को अपडेट करने के लिए साइडकार पैटर्न।
कुबेरनेट्स के लिए प्रक्रियाएँ
सर्टिफिकेट-मैनेजर (लेट्स एन्क्रिप्ट के लिए जारीकर्ता उदाहरण 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' जोड़ें और OCSP स्टेपलिंग को/कॉन्फ़िगमैप एनोटेशन के माध्यम से सक्षम करें।
वीएम/नंगे धातु के लिए प्रक्रियाएँ
सर्टबॉट (HTTP-01):bash sudo certbot certonly --webroot -w /var/www/html -d example. com -d www.example. com \
--deploy-hook "systemctl reload nginx"
सिस्टम टाइमर के माध्यम से आवधिक 'सर्टबोट नवीनीकृत'।
वाइल्डकार्ड के लिए, DNS-01 (प्लगइन प्रदाता) और समान '--deploy-hook' का उपयोग करें।
acme। sh (DNS-01, वाइल्डकार्ड):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 रखें। पेम 'и' निजी। पेम 'स्थिर रास्तों के तहत (सिमलिंक से वर्शन फ़ाइलों तक), फिर' nginx -s पुनः लोड '।
आंतरिक पीकेआई और एमटीएलएस
HashiCorp वॉल्ट 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
ऑटो-रिलीज़: वॉल्ट एजेंट इंजेक्टर (K8s) या साइडकार के माध्यम से; आवेदन/FS-वॉचर फ़ाइल से प्रमाणित फिर से पढ़ ता है।
शॉर्ट टीटीएल: 24-720 घंटे, जो लगातार रोटेशन को प्रोत्साहित करता है और चोरी की गई कुंजी के मूल्य को कम करता है।
mTLS: विशिष्ट सेवाओं/भूमिकाओं के लिए क्लाइंट सर्टिफिकेट जारी करें; इनपुट पर - इंग्रेस/साइडकार-प्रॉक्सी में आपसी टीएलएस।
सुरक्षित ऑपरेशन
रहस्य साझा करना: निजी कुंजी - केवल मेजबान/फली पर, कम से कम विशेषाधिकारों के सिद्धांत के अनुसार पहुंच।
फ़ाइल अधिकार: कुंजी के लिए '600'; स्वामी - प्रक्रिया उपयोगकर्ता।
अनुग्रह अवधि: DNS/ACME/प्रदाता विफलताओं के लिए पर्याप्त होने के लिए 'RenewBord' सेट करें।
OCSP स्टेपलिंग: मोर्चों पर चालू करें; प्रतिक्रिया की ताजगी की निगरानी करें (आमतौर पर 12-72 घंटे)।
HSTS: धीरे-धीरे चालू करें (शुरुआत में 'प्रीलोड' के बिना), सुनिश्चित करें कि सभी सामग्री की सही HTTPS डिलीवरी हो।
डुअल-सर्ट (RSA + ECDSA): संगतता और प्रदर्शन में सुधार; आधुनिक ग्राहकों को ईसीडीएसए दें।
निगरानी और एसएलओ
मेट्रिक्स और चेक:- प्रत्येक डोमेन/गुप्त के लिए समाप्ति (गेज) से पहले दिन; SLO: "समाप्त होने के लिए <7 दिनों से कोई प्रमाण नहीं।"
- श्रृंखला वैधता (लिंटिंग), आवश्यक डोमेन/आईपी के साथ सैन अनुपालन।
- OCSP स्टेपलिंग स्थिति (प्रतिक्रिया की ताजगी)।
- सफल/असफल एसीएमई चुनौतियों का प्रतिशत।
- लीटेंसी टीएलएस हैंडशेक, प्रोटोकॉल संस्करण/सिफर (ऑडिट)।
- चेतावनी: समाप्ति तक 30 दिन।
- क्रिट: 7 दिन/विफलता 'नवीनीकृत'।
- पृष्ठ: prod/no OCSP स्टेपलिंग में 72 घंटे/अवैध श्रृंखला।
घटनाएँ और रोलबैक
प्रमाणपत्र देरी: अस्थायी रूप से फिर से जारी करें और मैन्युअल रूप से तैनात करें, आरसीए को ठीक करें (नवीनीकरण क्यों काम नहीं किया, डीएनएस अवरुद्ध/एपीआई प्रतिबंध)।
मुख्य समझौता: तत्काल पुनर्जागरण/निरसन, रहस्यों का रोटेशन, एक्सेस ऑडिट, डीएनएस प्रदाता/एसीएमई खाता टोकन का रोटेशन।
गलत श्रृंखला: सही 'फुलचेन' का तत्काल जमा, मोर्चों के पुन: लोड।
लॉक-इन से DNS प्रदाता: बैकअप सत्यापन पथ (HTTP-01) या द्वितीयक DNS रखें।
स्वतः नवीकरण कार्यान्वयन चेकलिस्ट
1. मॉडल चुनें (एसीएमई/आंतरिक पीकेआई/हाइब्रिड के माध्यम से सार्वजनिक सीए)।
2. क्रिप्टो प्रोफ़ाइल को परिभाषित करें: ECDSA-P256, यदि आवश्यक हो तो RSA-2048 के साथ दोहरे प्रमाण।
3. स्वचालित एजेंट (प्रमाणित-प्रबंधक, प्रमाणपत्र, acme) कॉन्फ़िगर करें। sh, वॉल्ट एजेंट)।
4. शून्य-डाउनटाइम रिप्लेसमेंट (सिमलिंक पैटर्न, हॉट-रीलोड इंग्रेस/NGINX/Envoy) का आयोजन करें।
5. OCSP स्टेपलिंग और HSTS (चरणों में) चालू करें।
6. अलर्ट तिथि जोड़ें और स्टेटस को चुनौती दें; SLO निर्धारित करें।
7. ब्रेक-ग्लास और मैनुअल रिलीज प्रक्रियाओं का दस्तावेजीकरण करें।
8. आचरण "नकली" अभ्यास: टूटी हुई DNS-01, एसीएमई गिरती है, समाप्त जड ़/मध्यवर्ती।
9. निजी कुंजियों तक पहुंच की समीक्षा करें, DNS प्रदाता टोकन और ACME खातों को घुमाएं।
IGaming/fintech के लिए सुविधाएँ
पीसीआई डीएसएस/पीआईआई: सख्त सिफर सूट, टीएलएस 1 को मजबूर किया। 2+/1. 3, कमजोर सिफर/संपीड़न बंद करें, सुरक्षा समझौते के बिना सत्र फिर से शुरू।
डोमेन विभाजन: भुगतान उपडोमेन और प्रशासन के लिए अलग प्रमाणपत्र; सामग्री प्रदाताओं के लिए - पृथक श्रृंखला।
ऑडिट और लॉगिंग: रिकॉर्ड रिलीज/रिकॉल/रोटेशन; सीआई/सीडी कलाकृतियों पर हस्ताक्षर करें।
बहुक्षेत्रीयता: क्षेत्रों के लिए स्थानीय जारीकर्ता ताकि क्रॉस-क्षेत्रीय विफलताओं पर निर्भर न हों
नमूना विन्यास
NGINX (RSA + ECDSA, 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;
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"
सीएफएसएसएल: प्रोफ़ाइल और जारी करना
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
क्या मुझे वाइल्डकार्ड की जरूरत है?
यदि नए उपडोमेन अक्सर दिखाई देते हैं, तो हाँ (DNS-01 के माध्यम से)। अन्यथा, स्पष्ट डोमेन के लिए मल्टी-सैन का उपयोग करें।
क्या चुनें: प्रमाणित-प्रबंधक या प्रमाणपत्र?
Kubernetes - सर्टिफिकेट-मैनेजर। VM/microservices K8s → certbot/lego/acme से बाहर। sh। आंतरिक PKI → वॉल्ट/स्टेप-सीए।
क्या टीटीएल को एक दिन तक कम किया जा सकता है?
आंतरिक एमटीएलएस के लिए, हाँ, यदि स्वचालन/साइडकार रोटेशन की गारंटी देता है और अनुप्रयोग गर्म-पुनः लोड कर सकते हैं।
DNS-01 कैसे सुरक्षित करें?
क्षेत्र के लिए अलग टोकन/न्यूनतम पहुंच, कुंजी रोटेशन, आईपी एपीआई पहुंच, ऑडिट को प्रतिबंधित करें।
कुल
विश्वसनीय टीएलएस प्रबंधन सही क्रिप्टो प्रोफाइल, स्वचालित रिलीज और नवीकरण, शून्य-डाउनटाइम रोटेशन, अवलोकन और स्पष्ट घटना-प्रतिक्रिया प्रक्रियाओं का एक संयोजन है। ACME/PXI पाइपलाइन का निर्माण करें, सख्त अलर्ट जोड़ें और नियमित रूप से "आपातकालीन" परिदृश्यों को प्रशिक्षित करें - और समाप्त प्रमाणपत्र अब रात के पेजर का स्रोत नहीं होगा।