GH GambleHub

TLS 인증서 및 자동 갱신

왜 필요합니까?

TLS는 트래픽 "kliyent SL servis" 를 암호화하고 서버의 진위 여부를 확인하며 (및 mTLS-클라이언트) 스푸핑으로부터 보호합니다. 주요 위험: 인증서 지연, 약한 키, 잘못된 신뢰 체인, 수동 절차. 이 기사의 목적은 인증서가 항상 관련성이 있고 회전이 사용자에게 눈에 띄지 않는 아키텍처를 설명하는 것입니다.

기본 개념

CA/서명: 인증 기관 (공개 또는 내부).
체인 (풀체인): 리프 인증서 + 중간 + 루트 (일반적으로 클라이언트 리포지토리의 루트).
SAN (대체 이름): 하나의 인증서에 대한 도메인/IP 목록 (다중 SAN).
와일드 카드: '.example. com '- 많은 하위 도메인에 편리하며 DNA 검증이 필요합니다.
OCSP 스테이플 링: 서버는 최신 취소 상태를 적용합니다. 대기 시간과 외부 OCSP에 대한 의존성을 줄입니다.
HPKP: 더 이상 사용되지 않음; 대신 CT 로그와 주요 위생.
CT (Certificate Transparency): 공개 발행 로그-가짜 릴리스 제어에 중요합니다.

암호화 프로필 및 키

알고리즘:
  • ECDSA (P-256) - 빠르고 컴팩트 한; 현대 고객에게 선호됩니다.
  • SA-2048/3072-여전히 호환됩니다. 듀얼 인증서 (RT + ECDA) 를 보유 할 수 있습니다.
  • 키 생성: 대상 측에서만 (네트워크를 통해 개인을 전송하지 마십시오) 액세스 권한을 보호하십시오 ('0600').
  • HSM/KMS: HSM/KMS의 중요한 영역 (결제/PII) 저장 키의 경우 감사 운영이 가능합니다.
  • 수명: 짧은 인증서 (내부의 경우 90 일/30 일) 는 빈번한 회전을 장려하고 타협 위험을 줄입니다.

SL 관리의 건축 모델

1. ACME를 통한 공개 CA (암호화/Buypass/등)

유효성 검사: TP-01 (웹 서버/Ingress 경유) 또는 DNA-01 (와일드 카드/스트림 외 도메인의 경우).
장점: 무료/자동화 된 광범위한 신뢰. 단점: 외부 종속성.

2. 내부 기업 CA

도구: HashiCorp Vault PKI, Smallstep (step-ca), Microsoft AD CS, CFSS.
장점: 내부 도메인에 대한 사용자 정의 정책, mSL, 짧은 TTL 릴리스. 단점: 루트 배포, 신뢰 관리.

3. 하이브리드

외부 사용자를위한 공개 CA; 내부 CA-서비스 간 서비스 (mSL), 클러스터 간 채널 및 관리자 용.

자동 갱신 패턴 (갱신)

일반 원칙

갱신 임계 값: 만료되기 전에 '지정 30 일' 부터 시작하십시오. 중요한 서비스를 위해-'

제로 다운 타임: 새 인증서 발급, 원자 교체, 연결을 끊지 않고 원활한 재 장전.
이중 보류 (파란색/녹색): 현재 및 다음 인증서를 저장하십시오. 심볼릭 링크 또는 버전 비밀을 통한 전환.
경고: 45/30/14/7/3/1 일 경고; ACME 챌린지 실패 중 별도의 경고.

ACME 클라이언트 및 해당 응용 프로그램

certbot/acme. sh/lego: VM/bare-metal의 가벼운 제제.
인증 관리자 (Kubernetes): 발급자/클러스터 호퍼와 함께 일하는 운영자; 오토메이트는 출시/갱신하고 Secret에 씁니다.
스텝 카/볼트 에이전트: 짧은 TTL을 사용한 자동 릴리스/회전, 키 및 체인 업데이트를위한 사이드카 패턴.

Kubernetes를위한 <> 프로세스

인증서 관리자 (Ingress를 통한 Let's Covelant HTT-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 스테이플링을 활성화하십시오.

VM/베어 메탈 프로세스

Certbot (HTT-01):
bash sudo certbot certonly --webroot -w /var/www/html -d example. com -d www.example. com \
--deploy-hook "systemctl reload nginx"

시스템 타이머를 통한 주기적 'certbot 갱신'.
와일드 카드의 경우 DNA-01 (플러그인 제공 업체) 및 유사한 '-배포 후크' 를 사용하십시오.

acme. sh (DNA-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 원자 교체

풀체인을 유지하십시오. pem '겠습니다' privkey. pem '은 안정적인 경로에서 (버전이 지정된 파일에 대한 심플 링크),' nginx -s 재 장전 '입니다.

내부 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 (K8) 또는 사이드카를 통해; 응용 프로그램은/FS-watcher 파일에서 증명서를 다시 읽습니다.
짧은 TTL: 24-720 시간, 빈번한 회전을 장려하고 도난당한 키의 가치를 줄입니다.
mTLS: 특정 서비스/역할에 대한 클라이언트 인증서 발급; 입력-입력/사이드카 프록시의 상호 TLS에서.

안전한 작동

비밀 공유: 개인 키-호스트/포드에서만, 최소 권한의 원칙에 따라 액세스.
파일 권한: 키의 경우 '600'; 소유자-프로세스 사용자.
유예 기간: DNA/ACME/제공자 오류를 설명하기에 충분한 '갱신 전' 을 설정하십시오.
OCSP 스테이플 링: 정면에서 켜기; 응답의 신선도를 모니터링하십시오 (보통 12-72 시간).
HSTS: 시작시 '미리로드' 없이 점차적으로 켜면 모든 컨텐츠의 올바른 HTTPS 전달이 가능합니다.

이중 증명서 (RT + ECDSA): 호환성과 성능이 향상됩니다. 현대 고객에게 ECDSA를 제공하십시오

모니터링 및 SLO

메트릭 및 점검:
  • 각 도메인/비밀에 대한 만료 일 (게이지); SLO: "만료일 <7 일부터 인증서가 없습니다".
  • 체인 유효성 (린팅), 필요한 도메인/IP에 대한 SAN 준수.
  • OCSP 스테이플 링 상태 (응답의 신선도).
  • 성공/실패한 ACME 챌린지의 비율.
  • Leitency SL 악수, 프로토콜 버전/암호 (감사).
경고 (레벨 예):
  • 경고: 만료일까지 30 일
  • Crit: 7 일/실패 '갱신'.
  • 페이지: prod/no OCSP 스테이플링에서 72 시간/유효하지 않은 체인.

사고 및 롤백

인증 지연: 일시적으로 수동으로 재발행 및 배포하고 RCA 수정 (갱신이 작동하지 않은 이유, DNA 차단/API 제한).
주요 타협: 즉각적인 재발행/취소, 비밀 회전, 액세스 감사, DNA 제공 업체 회전/ACME 계정 토큰.
잘못된 체인: 올바른 '풀체인' 의 긴급한 증착, 전선의 강제 재 장전.
DNA 제공 업체에 잠그기: 백업 유효성 검사 경로 (TH-01) 또는 보조 DNS를 유지하십시오.

자동 갱신 구현 점검표

1. 모델을 선택하십시오 (ACME/내부 PKI/하이브리드를 통한 공개 CA).
2. RSA-2048의 이중 인증이 필요한 경우 암호화 프로파일: ECDSA-P256을 정의하십시오.
3. 자동 에이전트 (인증 관리자, certbot, acme) 를 설정합니다. sh, Vault Agent).
4. 다운 타임 교체를 구성하십시오 (symlink 패턴, 핫 리로드 방식/NGINX/Envoy).
5. OCSP 스테이플링 및 HSTS (단계) 를 켜십시오.
6. 경고 날짜 및 챌린지 상태 추가; SLO를 처방하십시오.
7. 브레이크 글래스 및 수동 릴리스 프로세스를 문서화하십시오.
8. "가짜" 연습을 수행하십시오: 깨진 DNA-01, ACME 낙하, 만료 된 루트/중간.
9. 개인 키에 대한 액세스를 검토하고 DNA 공급자 토큰과 ACME 계정을 회전시킵니다.

iGaming/fintech의 기능

PCI DSS/PII: 엄격한 암호 스위트, 강제 SL 1. 2+/1. 3, 보안 손상없이 약한 암호/압축, 세션 재개를 끄십시오.
도메인 세분화: 결제 하위 도메인 및 관리자를위한 별도의 인증서; 콘텐츠 제공 업체-격리 된 체인.
감사 및 로깅: 레코드 릴리스/리콜/로테이션; CI/CD 아티팩트에 서명하십시오.
다중 지역성: 지역 간 문제에 의존하지 않도록 지역 간 문제.

샘플 구성

NGINX (RT + 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;

OpenSS: 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

와일드 카드가 필요합니까?
새로운 하위 도메인이 종종 나타나는 경우 예 (DNA-01을 통해) 입니다. 그렇지 않으면 명시 적 도메인에 다중 SAN을 사용하십시오.

선택할 수있는 것: 인증 관리자 또는 인증서?
Kubernetes → 인증 관리자. K8s → certbot/lego/acme의 VM/microservices. sh. 내부 PKI → Vault/step-ca.

TTL을 하루로 줄일 수 있습니까?
내부 mTLS의 경우, 자동화/사이드카가 회전을 보장하고 응용 프로그램이 뜨거운 재 장전 될 수 있다면.

DNA-01을 확보하는 방법?
영역에 대한 별도의 토큰/최소 액세스, 키 회전, IP API 액세스 제한, 감사.

합계

안정적인 TLS 관리는 올바른 암호화 프로파일, 자동 릴리스 및 갱신, 다운 타임 제로 회전, 관찰 가능성 및 명확한 사고 대응 절차의 조합입니다. ACME/PXI 파이프 라인을 구축하고 엄격한 경고를 추가하며 정기적으로 "비상" 시나리오를 교육하십시오. 만료 된 인증서는 더 이상 야간 호출기의 원천이되지 않습니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.