mTLS
클라이언트 인증서 mTLS 검증 결과를 request.cf.tlsClientAuth로 확인하고 보호된 API를 게이팅합니다.
인증서 제시 안 됨 — 일반 TLS 연결
TLS TLSv1.2 · ECDHE-ECDSA-AES128-GCM-SHA256
request.cf.tlsClientAuth 필드
| certPresented | 0 |
| certVerified | NONE |
| certSubjectDN | |
| certIssuerDN | |
| certIssuerSKI | |
| certSerial | |
| certFingerprintSHA256 | |
| certFingerprintSHA1 | |
| certNotBefore | |
| certNotAfter |
보호된 API 호출
GET /mtls/api/secure — certPresented=1 AND certVerified=SUCCESS일 때만 200 응답.
이 데모가 보여주는 것
- client cert 없는 일반 브라우저 접속 → certPresented=0, /api/secure는 401
- 대시보드에서 발급한 client cert를 브라우저에 import 후 접속 → certVerified=SUCCESS
- 발급되지 않은/위조 cert로 접속 → certPresented=1 + certVerified=FAILED:reason
- API Shield mTLS rule을 추가하면 worker에 도달하기 전 엣지에서 차단