Πιστοποιητικά TLS και αυτόματη ανανέωση
Γιατί το χρειάζεστε
Το TLS κρυπτογραφεί την κίνηση «kliyent↔servis», επιβεβαιώνει την αυθεντικότητα του διακομιστή (και με το mTLS - πελάτη), και επίσης προστατεύει από την απάτη. Οι κύριοι κίνδυνοι: καθυστερήσεις πιστοποιητικών, αδύναμα κλειδιά, εσφαλμένη αλυσίδα εμπιστοσύνης, χειροκίνητες διαδικασίες. Σκοπός του άρθρου είναι να περιγράψει την αρχιτεκτονική στην οποία τα πιστοποιητικά είναι πάντα συναφή και οι περιστροφές περνούν απαρατήρητες από τους χρήστες.
Βασικές έννοιες
ΚΑ/Υπογράφων: αρχή πιστοποίησης (δημόσια ή εσωτερική).
Αλυσίδα (fullchain): πιστοποιητικό φύλλων + ενδιάμεση + ρίζα (συνήθως ρίζα σε αρχεία καταγραφής πελατών).
SAN (υποκείμενο εναλλακτικό όνομα): κατάλογος τομέων/IP για ένα πιστοποιητικό (multi-SAN).
Wildcard: '. com "- βολικό για πολλούς υποτομείς, απαιτεί επικύρωση DNS.
συρραφή OCSP: ο εξυπηρετητής εφαρμόζει την πλέον πρόσφατη κατάσταση ανάκλησης· μειώνει την καθυστέρηση και την εξάρτηση από εξωτερικά OCSP.
HPKP: παρωχημένο/μη χρησιμοποιούμενο· Αντ 'αυτού, τα αρχεία καταγραφής και η υγιεινή κλειδιών.
CT (Διαφάνεια πιστοποιητικού): δημόσια αρχεία καταγραφής εκδόσεων - σημαντικά για τον έλεγχο των πλαστών ελευθερώσεων.
Προφίλ κρυπτογράφησης και κλειδιά
Αλγόριθμοι:- ECDSA (P-256) - ταχεία και συμπαγής· προτιμάται για τους σύγχρονους πελάτες.
- εξακολουθεί να είναι συμβατή, μπορεί να διατηρείται διπλή πιστοποίηση (RSA + ECDSA).
- Βασική γενιά: μόνο από την πλευρά-στόχο (μην μεταφέρετε ιδιώτες μέσω του δικτύου), προστατεύστε τα δικαιώματα πρόσβασης («0600»).
- HSM/KMS: για κρίσιμους τομείς (πληρωμή/PII) αποθηκεύονται κλειδιά σε HSM/KMS, οι οποίες επιτρέπουν ελεγκτικές πράξεις.
- Διάρκεια ζωής: Τα σύντομα πιστοποιητικά (90 ημέρες/30 ημέρες για το εσωτερικό) ενθαρρύνουν τη συχνή εναλλαγή και μειώνουν τον κίνδυνο συμβιβασμού.
Αρχιτεκτονικά μοντέλα διαχείρισης TLS
1. Δημόσια CA μέσω ACME (ας κρυπτογράφηση/buypass/κ.λπ.)
Επικύρωση: HTTP-01 (μέσω web server/Ingress) ή DNS-01 (για wildcard/out-of-stream domains).
Υπέρ: ελεύθερη/αυτοματοποιημένη, ευρεία εμπιστοσύνη. Κατά: εξωτερικές εξαρτήσεις.
2. Εσωτερικά εταιρικά ΠΑΥ
Εργαλεία: HashiCorp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSSL.
Pros: προσαρμοσμένες πολιτικές, mTLS, σύντομη TTL, έκδοση για εσωτερικούς τομείς. Κατά: κατανομή ριζών, διαχείριση εμπιστοσύνης.
3. Υβριδικό
Δημόσια αξιολόγηση πιστοληπτικής ικανότητας για εξωτερικούς χρήστες· Εσωτερική CA - για υπηρεσίες εξυπηρέτησης (mTLS), διαύλους διασποράς και φορείς διαχείρισης.
Πρότυπα αυτόματης ανανέωσης (ανανέωση)
Γενικές αρχές
Όριο ανανέωσης: αρχίζει από τις «≤ 30» ημέρες πριν από τη λήξη της ισχύος της. για υπηρεσίες κρίσιμης σημασίας - σε ≤ 45 "ημέρες.
Μηδενικός χρόνος: έκδοση νέου πιστοποιητικού, ατομική αντικατάσταση, ομαλή επαναφόρτωση χωρίς να σπάσει συνδέσεις.
Διπλή λαβή (μπλε/πράσινο): αποθηκεύεται το ρεύμα και το επόμενο πιστοποιητικό. αλλαγή - μέσω symlink ή versioned μυστικό.
Προειδοποίηση: 45/30/14/7/3/1 ημερησίως. ξεχωριστή προειδοποίηση κατά την αποτυχία της πρόκλησης της ACME.
πελάτες ACME και η εφαρμογή τους
certbot/acme. sh/lego: φωτιστικά μέσα σε VM/γυμνό μέταλλο.
cert-manager (Kubernetes): φορέας εκμετάλλευσης που συνεργάζεται με την Issuer/ClusterIssuer· αυτοματοποιεί την απελευθέρωση/ανανέωση και γράφει στο Secret.
step-ca/Vault Agent: αυτόματη απελευθέρωση/περιστροφή με σύντομες TTL, sidecar μοτίβα για την ενημέρωση κλειδιών και αλυσίδων.
Διεργασίες για Kubernetes
cert-manager (Παράδειγμα εκδότη για Let 's κρυπτογράφηση 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 γίνεται αυτόματα όταν το 'Secre ενημερώνεται. Προσθήκη καμπύλης 'ssl-ecdh: secp256r1' και ενεργοποίηση της συρραφής OCSP μέσω σημειώσεων/ConfigMap.
Διεργασίες για VM/Γυμνό μέταλλο
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» μέσω χρονοδιακόπτη συστήματος.
Για 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 to versioned files), στη συνέχεια «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
Αυτόματη απελευθέρωση: μέσω εγχυτήρα υλικού θησαυροφυλακίου (K8s) ή πλευρικού οχήματος. η αίτηση επαναδιαβάζει πιστοποιητικό από το αρχείο/FS-παρατηρητή.
Σύντομη TTL: 24- 720 ώρες, η οποία ενθαρρύνει τη συχνή εναλλαγή και μειώνει την τιμή του κλεμμένου πλήκτρου.
mTLS: έκδοση πιστοποιητικών πελατών για συγκεκριμένες υπηρεσίες/ρόλους· στην εισαγωγή - αμοιβαία TLS στην είσοδο/sidecar-proxy.
Ασφαλής λειτουργία
Κοινόχρηστα μυστικά: ιδιωτικά κλειδιά - μόνο στον υπολογιστή/θάλαμο, πρόσβαση σύμφωνα με την αρχή των ελάχιστων προνομίων.
Δικαιώματα αρχείου: '600' για το κλειδί. ιδιοκτήτης - χρήστης της διαδικασίας.
Περίοδος χάριτος: Ορίστε το 'renewBefore' ώστε να είναι αρκετό για να λογοδοτήσει για τις αστοχίες DNS/ACME/παρόχου.
OCSP Συρραφή: ανάβει στα μέτωπα· παρακολουθεί τη φρεσκάδα της απόκρισης (συνήθως 12-72 ώρες).
HSTS: ενεργοποιήστε σταδιακά (χωρίς «προφόρτωση» στην αρχή), εξασφαλίζοντας τη σωστή παροχή HTTPS όλου του περιεχομένου.
Διπλή πιστοποίηση (RSA + ECDSA): βελτιώνει τη συμβατότητα και τις επιδόσεις· Δώστε ECDSA σε σύγχρονους πελάτες.
Παρακολούθηση και SLO
Μετρήσεις και έλεγχοι:- Ημέρες πριν από τη λήξη (περιτύπωμα) για κάθε τομέα/μυστικό· SLO: «καμία πιστοποίηση από <7 ημέρες έως τη λήξη».
- Εγκυρότητα αλυσίδας (linting), συμμόρφωση SAN με τα απαιτούμενα πεδία/IP.
- Κατάσταση συρραφής OCSP (φρεσκάδα απόκρισης).
- Ποσοστό επιτυχημένων/ανεπιτυχών προκλήσεων ACME.
- Χειραψία TLS, εκδόσεις πρωτοκόλλου/κρυπτογραφήματα (έλεγχος).
- Προειδοποίηση: 30 ημέρες μέχρι τη λήξη.
- Crit: 7 ημέρες/αποτυχία «ανανέωση».
- Σελίδα: 72 ώρες/άκυρη αλυσίδα στη συρραφή prod/no OCSP.
Περιστατικά και ανατροπές
Καθυστέρηση έκδοσης πιστοποιητικού: προσωρινή επανέκδοση και χρήση με το χέρι, διόρθωση RCA (γιατί η ανανέωση δεν λειτούργησε, περιορισμοί φραγμού DNS/API).
Βασικός συμβιβασμός: άμεση επανέκδοση/ανάκληση, εναλλαγή μυστικών, έλεγχος πρόσβασης, εναλλαγή σημάτων λογαριασμού DNS/ACME.
Εσφαλμένη αλυσίδα: επείγουσα εναπόθεση της σωστής «πλήρους αλυσίδας», αναγκαστική επαναφόρτωση των μετώπων.
Κλείδωμα στον πάροχο DNS: διατήρηση της εφεδρικής διαδρομής επικύρωσης (HTTP-01) ή του δευτερεύοντος DNS.
Κατάλογος εφαρμογής αυτόματης ανανέωσης
1. Επιλέξτε το μοντέλο (δημόσιο CA μέσω ACME/εσωτερικό PKI/υβριδικό).
2. Προσδιορίζεται το προφίλ κρυπτογράφησης: ECDSA-P256, εάν χρειάζεται διπλή πιστοποίηση με RSA-2048.
3. Ρύθμιση του αυτόματου μέσου (cert-manager, certbot, acme. sh, πράκτορας θησαυροφυλακίου).
4. Οργάνωση αντικατάστασης μηδενικού χρόνου (μοτίβο symlink, είσοδος θερμού φορτίου/NGINX/Απεσταλμένος).
5. Ενεργοποιήστε τη συρραφή OCSP και το HSTS (σε στάδια).
6. Προσθήκη ημερομηνιών προειδοποίησης και καταστάσεων αμφισβήτησης. συνταγογράφηση SLO.
7. Τεκμηρίωση των διαδικασιών θραύσης και χειροκίνητης απελευθέρωσης.
8. Διεξαγωγή «ψεύτικων» ασκήσεων: σπασμένα DNS-01, πτώση ACME, λήξη ρίζας/ενδιάμεσο.
9. Επανεξέταση της πρόσβασης σε ιδιωτικά κλειδιά, εναλλασσόμενες μάρκες παρόχου DNS και λογαριασμούς ACME.
Χαρακτηριστικά για iGaming/fintech
PCI DSS/PII: αυστηρή Cipher Suites, αναγκαστική TLS 1. 2+/1. 3, απενεργοποίηση αδύναμων κρυπτογραφημάτων/συμπίεσης, επανάληψη συνεδρίας χωρίς συμβιβασμούς ασφαλείας.
Κατάτμηση τομέα: χωριστά πιστοποιητικά για υποτομείς πληρωμών και διαχειριστές· για παρόχους περιεχομένου - απομονωμένες αλυσίδες.
Έλεγχος και καταγραφή: έκδοση αρχείου/ανάκληση/εναλλαγή· υπογραφή αντικειμένων CI/CD.
Πολυεθνικότητα: Τοπικοί εκδότες σε περιφέρειες ώστε να μην εξαρτώνται από διαπεριφερειακές αποτυχίες.
Διαμόρφωση δείγματος
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"
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
ΣΥΧΝΈΣ ΕΡΩΤΉΣΕΙΣ
Χρειάζομαι μια κάρτα Wildcard
Εάν εμφανίζονται συχνά νέοι υποτομείς, ναι (μέσω του DNS-01). Διαφορετικά, χρησιμοποιήστε το multi-SAN για σαφείς τομείς.
Τι να επιλέξετε: cert-manager ή certbot
Kubernetes → διαχειριστής πιστοποιητικών. VM/microservices από K8s → certbot/lego/acme. sh. Εσωτερική PKI → Θησαυροφυλάκιο/βήμα-γα.
Μπορεί το TTL να μειωθεί σε μία ημέρα
Για το εσωτερικό mTLS, ναι, εάν η αυτοματοποίηση/sidecar εγγυάται την περιστροφή και οι εφαρμογές μπορούν να επαναφόρτωση εν θερμώ.
Πώς να εξασφαλίσετε DNS-01
Χωριστή συμβολική/ελάχιστη πρόσβαση στη ζώνη, εναλλαγή κλειδιού, περιορισμός πρόσβασης ΔΔΙ, έλεγχος.
Σύνολο
Αξιόπιστη διαχείριση TLS είναι ένας συνδυασμός του σωστού προφίλ κρυπτογράφησης, αυτοματοποιημένη απελευθέρωση και ανανέωση, περιστροφές μηδενικού χρόνου, παρατηρησιμότητα, και σαφείς διαδικασίες απόκρισης συμβάντων. Κατασκευή αγωγού ACME/PXI, προσθήκη αυστηρής προειδοποίησης και τακτική εκπαίδευση σεναρίων «έκτακτης ανάγκης» - και τα ληγμένα πιστοποιητικά δεν θα αποτελούν πλέον πηγή συσκευών τηλεειδοποίησης.