K8s에서의 tls
K8s에서의 tls
K8s에서는 요청을 개인 키로 암호화하고, 이를 클라이언트 인증서와 함께 서버로 전송
요청과 클라이언트 인증서의 흐름
1. 요청 서명:
- 클라이언트는 서버에 보내고자 하는 요청 데이터를 개인 키로 서명합니다.
- 이 서명은 요청 자체의 내용을 암호화하는 것이 아니라, 요청의 무결성을 보장하는 방법입니다. 즉, 클라이언트는 요청의 해시 값을 개인 키로 암호화하여 서명하고, 이를 서버가 검증할 수 있게 합니다.
2. 클라이언트 인증서와 개인 키:
- 클라이언트는 자신의 클라이언트 인증서도 서버로 함께 전송합니다. 이 인증서에는 클라이언트의 공개 키가 포함되어 있습니다.
- 클라이언트 인증서는 **인증 기관(CA)**에 의해 서명된 공개 키 인증서로, 클라이언트의 신원을 확인하는 데 사용됩니다.
3. 서버의 인증서 검증:
- 서버는 클라이언트가 제공한 인증서에서 공개 키를 추출하고, 이를 사용해 개인 키로 서명된 요청을 검증합니다.
- 서명된 요청은 클라이언트의 개인 키로 서명되었기 때문에, 서버는 클라이언트의 공개 키를 사용하여 서명의 유효성을 확인하고, 요청이 변조되지 않았음을 보장할 수 있습니다.
요약:
- 클라이언트는 개인 키로 요청을 서명하고, 이 서명된 요청과 자신의 클라이언트 인증서(공개 키 포함)를 서버에 보냅니다.
- 서버는 클라이언트 인증서를 통해 클라이언트의 공개 키를 얻고, 이를 사용해 서명된 요청이 유효한지 검증합니다.
- 클라이언트 인증서는 서버가 클라이언트의 신원을 확인하는 데 사용되며, 개인 키는 요청의 무결성을 보장하는 데 사용됩니다.