
먼저 글 작성에 앞서 해당 시리즈는 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 참고하여 필요한 내용들을 정리한 것임을 밝힙니다.
yaml 파일에 설정 정보를 담은 채로, 이를 사용하게 되면 이 파일이 노출되었을 때, 누구나 이 정보를 활용할 수 있기 때문에, 암호화 처리를 하여 저장을 하고, 이를 사용할 때는 복호화해야 한다.
encrypt:
key: 12345667890
spring:
rabbitmq:
host: localhost
port: 5672
username: "{cipher}d1adad62178fa8f9ff47d43f67ba01a7b37f01cf15d3d787955b6aff41f91ca9"
password: "{cipher}81ac0762a32606aeea0c0e3554082fbed461ef8642687e1c085516b8ba44a2e1"keytool -genkeypair -alias 별칭 -keyalg RSA -dname "CN=이름, OU=API Document, O=도메인, L=Seoul, C=KR" -keypass "비밀번호" -keystore 저장파일명.jks -storepass "비밀번호"
keytool -export -alias apiEncryptionKey -keystore apiEncryptionKey.jks -rfc -file trustServer.cer
keytool -import -alias trustServer -file trustServer.cer -keystore publicKey.jks
keytool -list -keystore apiEncryptionKey.jks
keytool -list -keystore publicKey.jks
encrypt:
key-store:
location: file://[파일위치]
alias: [별칭]
password: [비밀번호]
따라서 아래와 같이 bootstrap.yml에 설정을 추가하여 추가 보안을 설정해야 한다.
spring:
cloud:
config:
server:
encrypt:
enabled: false
위 설정은 client에게 설정 파일을 제공할 때, 암호화문으로 제공하겠다는 설정이다. (default true)
이렇게 설정을 하면 기본적인 config server의 보안 설정이 끝난다.
다만 config server에 접속하면 암호문 확인은 가능하다.
추후에 config server 접속 권한을 제어하는 방식으로 추가 보안 설정이 가능할 듯 싶다.