개발
home
🕊️

Keystore, Truststore 정리

Created
2024/02/16
Tags
Encryption
Keystore
Truststore
JKS
2024-02-16 @이영훈

개요

Apache Kafka 연동할 때 Keystore, Truststore를 설정하면서 이 두개의 개념을 기록으로 남깁니다

Keystore

정의
Keystore는 애플리케이션의 개인 키와 공개 키 인증서들을 저장하는 저장소입니다. 이 개인 키는 애플리케이션이 외부 시스템과의 통신에서 자신을 인증하는 데 사용됩니다.
용도
데이터 암호화 및 디지털 서명: 개인 키를 사용하여 데이터를 암호화하거나 디지털 서명을 생성합니다.
SSL/TLS 통신에서 서버 인증: 서버는 Keystore에 저장된 개인 키와 인증서를 사용하여 클라이언트에게 자신을 인증합니다.
Keystore 생성
keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -keystore server.keystore.jks -validity 365
Bash
복사
server.keystore.jks라는 이름의 Keystore 파일을 생성하고, RSA 알고리즘을 사용하여 2048 비트 키 크기의 키 쌍을 생성합니다. 여기서 -alias는 생성된 키에 대한 별칭을 지정합니다.

Truststore

정의
Truststore는 신뢰할 수 있는 CA의 공개 키 인증서들을 저장하는 저장소입니다.
클라이언트는 Truststore에 저장된 인증서를 사용하여 서버 또는 다른 외부 시스템의 인증서를 신뢰할 수 있는지 검증합니다.
용도:
서버 인증서 검증: 클라이언트는 Truststore에 저장된 CA 인증서를 사용하여 SSL/TLS 통신 중 서버로부터 제공받은 인증서의 유효성을 확인합니다.
SSL/TLS 통신에서 클라이언트 인증 (상호 인증 시): 서버도 클라이언트의 인증서를 검증하기 위해 Truststore를 사용할 수 있습니다.
Truststore 생성
keytool -import -alias cacert -file ca.crt -keystore client.truststore.jks
Bash
복사
client.truststore.jks라는 이름의 Truststore 파일에 ca.crt라는 CA 인증서를 추가합니다. 여기서 -alias는 인증서에 대한 별칭을 지정합니다.