인증서, 공개키 파일은 언제 사용하나요?
실제로 publicKey는 처음에 keytool로 생성했던 apiEncryptionKey.jks 에 포함되어있습니다. 일반적으로 비대칭 암호화에서는 공개키로 데이터를 암호화하고, 개인키로 데이터를 복호화합니다. 여기서 사용된 .jks 파일(Java KeyStore)은 여러 키와 인증서를 저장할 수 있는 저장소로, 개인키(Private Key)와 이에 대응하는 공개키(Public Key) 둘 다 포함하고 있습니다.Spring Cloud Config와 같은 프레임워크에서 암호화 및 복호화를 할 때, 설정에 지정된 키스토어 파일(.jks)을 사용하여 둘 다 처리할 수 있습니다. 이는 .jks 파일 내부에 개인키와 공개키 모두 포함되어 있기 때문입니다. 설정에서 지정한 키스토어 내의 개인키를 사용하여 복호화를 수행하고, 필요한 경우에는 같은 키스토어 내의 공개키를 사용하여 데이터를 암호화할 수 있습니다.설정 파일에서 key-store를 지정할 때, 사실상 Spring은 내부적으로 다음과 같이 작동합니다:암호화: 애플리케이션 또는 사용자가 데이터를 암호화하려고 요청할 때, Spring은 지정된 키스토어에서 공개키를 사용하여 데이터를 암호화합니다. 공개키는 누구와도 안전하게 공유될 수 있으며, 데이터를 암호화하는 데 사용됩니다.복호화: 암호화된 데이터를 복호화할 때는 키스토어에 저장된 개인키를 사용합니다. 이 개인키는 보안을 유지해야 하며, 이를 통해서만 암호화된 데이터를 복호화할 수 있습니다.key-store 설정에 지정된 .jks 파일은 이러한 작업을 위한 모든 필요한 정보(개인키, 공개키, 인증서 등)를 포함하고 있으며, Spring은 이 정보를 사용하여 암호화와 복호화 작업을 수행합니다. 따라서, 복호화 과정에서 명시적으로 공개키를 지정할 필요가 없는 것입니다. Spring은 지정된 키스토어 파일 내에서 필요한 키를 찾아 해당 작업을 수행합니다.