SMALL

Spring Cloud Config는 비대칭키, 대칭키 각각 암호화/복호화 방식을 지원한다.

보안 측면에서 public key, private key가 각각 존재하는 비대칭키 방식이 더 안전하다. 

대칭키 방식은 암호화/복호화에 같은 키가 사용되므로 키가 유출됐을 때의 위험이 크다는 단점이 있다. 

 

 

비대칭키 생성 

// private key 생성
keytool -genkeypair -alias privateKey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass "password123" -keystore privateKey.jks -storepass "password123" -storetype pkcs12

// 인증서 파일 생성
keytool -export -alias privateKey -keystore privateKey.jks -rfc -file trustServer.cer

// 인증서 파일 -> jks 파일 public key 생성
keytool -import -alias trustServer -file trustServer.cer -keystore publicKey.jks

 

Java Cryptography Extension (JCE) 설치

자바에서 제공하는 encrypt를 사용하기 위해서는 JCE 다운로드하여 classpath에 등록해주어야 한다. 

( 11버전 이후부터는 default로 포함되어 있다고 한다)

https://www.oracle.com/java/technologies/javase-jce-all-downloads.html )

 

server - application.yml 설정 추가 ( for encrypt endpoint )

encrypt:
  key-store:
    location: file:../server/key/privateKey.jks # location of key 
    alias: privateKey
    password: password123

 

encrypt endpoint 

 

spring cloud config - properties example 

 

spring cloud config - properties 조회

위의 내용을 그림으로 표현하면 아래와 같다.

spring cloud server에서 encrypt, decrypt를 모두 담당하게 된다.

client에게 properties를 전달할 때 decrypt 된 값들을 전달하는 것이다.

 

 

Server-Encrypt, Client-Decrypt

 

위와 같은 형태가 아닌 server에서는 encrypt된 properties를 들고 있고

client에서 해당 properties를 가져갈때 decrypt 하고 싶은 상황에는 아래와 같이 설정하면 된다.

 

server - application.yml 설정 추가 ( for encrypt endpoint )

spring:
  cloud:
    config:
      server:
        encrypt:
          enabled: false
encrypt:
  key-store:
    location: file:../server/key/publicKey.jks # location of key 
    alias: trustServer
    password: password123

server side에서 decrypt 하는 것을 방지하기 위해 

spring.cloud.config.server.encrypt.enabled = false로 지정 

server side에는 encrypt만 담당하기 위해 public key 등록 

 

 

client-appliation.yml 설정 추가 decrypt

encrypt:
  key-store:
    location: file:../sba-server/key/privateKey.jks
    alias: privateKey
    password: 1q2w3e4r

 

 

LIST

+ Recent posts