GH GambleHub

گواهینامه های TLS و تمدید خودکار

چرا به آن نیاز دارید ؟

TLS ترافیک «kliyent↔servis» را رمزگذاری می کند، صحت سرور (و با mTLS - مشتری) را تأیید می کند، و همچنین در برابر کلاهبرداری محافظت می کند. خطرات اصلی: تاخیر گواهی، کلید ضعیف، زنجیره اعتماد نادرست، روش های دستی. هدف این مقاله توصیف معماری است که در آن گواهینامه ها همیشه مرتبط هستند و چرخش ها توسط کاربران نادیده گرفته می شوند.

مفاهیم پایه

CA/امضا کننده: مجوز صدور گواهینامه (عمومی یا داخلی).
زنجیره ای (fullchain): گواهی برگ + متوسط + ریشه (معمولا در مخازن مشتری ریشه).
SAN (نام جایگزین موضوع): لیست دامنه/IP برای یک گواهی (چند SAN).
wildcard: ".example. com - مناسب برای بسیاری از زیر دامنه ها، نیاز به اعتبار DNS دارد.
OCSP stapling: سرور آخرین وضعیت لغو را اعمال می کند ؛ کاهش تاخیر و وابستگی به OCSP های خارجی.
HPKP: منسوخ/استفاده نمی شود ؛ در عوض، CT سیاهههای مربوط و بهداشت کلیدی.
CT (Certificate Transparency): سیاهههای مربوط به صدور عمومی - برای کنترل انتشارات جعلی مهم است.

مشخصات رمزنگاری و کلید

الگوریتم ها:
  • ECDSA (P-256) - سریع و جمع و جور ؛ ترجیح برای مشتریان مدرن
  • RSA-2048/3072 - هنوز هم سازگار است می تواند دوگانه CERT (RSA + ECDSA) برگزار شود.
  • تولید کلید: فقط در طرف هدف (دزدان دریایی خصوصی را از طریق شبکه منتقل نکنید)، از حقوق دسترسی («0600») محافظت کنید.
  • HSM/KMS: برای مناطق بحرانی (پرداخت/PII) کلیدهای فروشگاه در HSM/KMS، عملیات حسابرسی را فعال کنید.
  • طول عمر: گواهینامه های کوتاه (90 روز/30 روز برای داخلی) چرخش مکرر را تشویق می کنند و خطر سازش را کاهش می دهند.

مدل های معماری مدیریت TLS

1. CA عمومی از طریق ACME (بیایید رمزگذاری/Buypass/و غیره)

اعتبار سنجی: HTTP-01 (از طریق وب سرور/Ingress) یا DNS-01 (برای دامنه های wildcard/out-of-stream).

مزایا: اعتماد آزاد/خودکار، گسترده. معایب: وابستگی های خارجی

2. CA داخلی شرکت

ابزار: HashiCorp Vault PKI، Smallstep (step-ca)، Microsoft AD CS، CFSSL.
مزایا: سیاست های سفارشی، mTLS، TTL کوتاه، انتشار برای دامنه های داخلی. معایب: توزیع ریشه، مدیریت اعتماد.

3. هیبرید

CA عمومی برای کاربران خارجی ؛ CA داخلی - برای سرویس به سرویس (mTLS)، کانال های بین خوشه ای و مدیران.

الگوهای تجدید خودکار (تجدید)

اصول کلی

آستانه تجدید: شروع در «≤ 30» روز قبل از انقضای; برای خدمات بحرانی - در روزهای ≤ 45.
Zero-downtime: صدور گواهی جدید، جایگزینی اتمی، بارگذاری صاف بدون شکستن اتصالات.
دو نگه دارید (آبی/سبز): ذخیره cert فعلی و بعدی ؛ تعویض - از طریق symlink یا نسخه مخفی.
هشدار: 45/30/14/7/3/1 روز هشدار ؛ هشدار جداگانه در طول شکست چالش ACME.

مشتریان ACME و کاربرد آنها

certbot/acme. sh/lego: عوامل نور در VM/bare-metal.
cert-manager (Kubernetes): اپراتور با Issuer/ClusterIssuer کار می کند ؛ خودکار انتشار/تجدید و نوشتن به راز.
step-ca/Vault Agent: انتشار/چرخش خودکار با TTL های کوتاه، الگوهای جانبی جانبی برای به روز رسانی کلید ها و زنجیره ها.

فرآیندهایی برای کوبرنتیز

cert-manager (مثال صادرکننده برای Let's Encrypt HTTP-01 via 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: secp256r1» را اضافه کنید و ocsp را از طریق حاشیه نویسی ConfigMap فعال کنید.

فرآیندهای VM/Bare-metal

گواهینامه (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.
برای wildcard، از DNS-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

زنجیره ای نگه دارید. PEM 'и' کلید خصوصی. 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 ؛ برنامه دوباره cert را از فایل/FS-watcher می خواند.
TTL کوتاه: 24-720 ساعت، که چرخش مکرر را تشویق می کند و ارزش کلید سرقت شده را کاهش می دهد.
mTLS: صدور گواهینامه مشتری برای خدمات/نقش های خاص ؛ در ورودی - TLS متقابل در ورود/sidecar-proxy.

عملیات ایمن

به اشتراک گذاری اسرار: کلید خصوصی - فقط در میزبان/غلاف، دسترسی با توجه به اصل حداقل امتیازات.
حقوق فایل: '600' برای کلید ؛ مالک - پردازش کاربر.
دوره گریس: تنظیم «renewBefore» به اندازه کافی برای حساب DNS/ACME/ارائه دهنده شکست.
OCSP Stapling: روشن کردن در جبهه ؛ نظارت بر طراوت پاسخ (معمولا 12-72 ساعت).
HSTS: به تدریج (بدون «پیش بارگذاری» در ابتدا) روشن می شود، اطمینان حاصل کنید که تحویل درست HTTPS تمام محتوا.
Dual-cert (RSA + ECDSA): سازگاری و عملکرد را بهبود می بخشد ؛ ECDSA را به مشتریان مدرن بدهید.

💡 > نظارت و SLO
معیارها و چک ها:
  • روز قبل از انقضا (سنج) برای هر دامنه/راز ؛ SLO: «هیچ cert از <7 روز به انقضای».
  • اعتبار زنجیره ای (اتصال)، انطباق SAN با دامنه های مورد نیاز/IP.
  • وضعیت منگنه OCSP (طراوت پاسخ).
  • درصد چالش های موفقیت آمیز/ناموفق ACME.
  • Leitency TLS handshakes, نسخه پروتکل/رمز (ممیزی).
هشدارها (نمونه ای از سطوح):
  • اخطار: 30 روز تا انقضا.
  • Crit: 7 روز/شکست 'تجدید'.
  • صفحه: 72 ساعت/زنجیره نامعتبر در برچسب زدن/بدون 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/Envoy).
5. OCSP Stapling و 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 → cert-manager. VM/میکروسرویس از K8s → certbot/lego/acme. هیس. PKI داخلی → Vault/step-ca.

آیا میتوان TTL را به یک روز کاهش داد ؟

برای mTLS داخلی، بله، اگر اتوماسیون/sidecar تضمین چرخش و برنامه های کاربردی می تواند داغ مجدد.

چگونه DNS-01 را ایمن کنیم ؟

توکن جداگانه/دسترسی حداقل به منطقه، چرخش کلید، محدود کردن دسترسی IP API، ممیزی.

مجموع

مدیریت قابل اطمینان TLS ترکیبی از پروفایل صحیح رمزنگاری، انتشار و تجدید خودکار، چرخش زمان از کار افتادگی صفر، قابلیت مشاهده و روشهای روشن واکنش به حادثه است. ساخت یک خط لوله ACME/PXI، اضافه کردن هشدار دقیق و به طور منظم آموزش سناریوهای «اضطراری» - و گواهینامه های منقضی شده دیگر منبع پیجر های شبانه نخواهند بود.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.