Jdk keytool을 사용한다.
먼저 keystore라는 폴더를 생성한다. 이곳에 private 키를 보관한다.
해당 폴더로 가서 터미널에서 다음과 같이 입력한다.
keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -dname "CN=name, OU=API Development, O=msapractice.co.kr, L=Seoul, C=KR" -keypass "test1234" -keystore apiEncryptionKey.jks -storepass "test1234"
-genkeypair: 키 쌍(공개키 및 개인키)을 생성하는 옵션.
-alias apiEncryptionKey: 생성되는 키 쌍에 대한 별칭을 지정. 이 별칭은 나중에 키 스토어에서 해당 키 쌍을 식별하는 데 사용.
-keyalg RSA: RSA 알고리즘을 사용하여 키 쌍을 생성.
-dname "CN=name, OU=API Development, O=msapractice.co.kr, L=Seoul, C=KR": 인증서에 포함될 사용자의 이름, 조직 단위, 조직, 지역 및 국가 정보를 지정.
-keypass "test1234": 개인키에 대한 암호를 설정.
-keystore apiEncryptionKey.jks: 생성된 키 쌍을 저장할 키 스토어 파일의 경로와 이름을 지정.
-storepass "test1234": 키 스토어 파일에 대한 암호를 설정.
위의 코드를 실행하면 "apiEncryptionKey.jks"라는 이름의 키 스토어 파일이 생성된다. 이 파일은 공개키 및 개인키를 포함하고 있으며, 이후에 암호화 및 복호화 작업에 사용될 수 있다. 생성된 키 스토어 파일을 안전한 장소에 보관하여 암호화 작업에 사용할 수 있다.
해당 키를 통해 공개키를 추출할 수도 있다.
keytool -export -alias apiEncryptionKey -keystore apiEncryptionKey.jks -rfc -file trustServer.cer
현재 생성된 폴더의 위치를 config server에 명시해주어야 한다.
encrypt:
# key: abcdefghijklmnopqrstuvwxyz0123456789
key-store:
location: file://${user.home}/Documents/rene/inflearn/msa-with-springcloud-config/keystore/apiEncryptionKey.jks
password: test1234
alias: apiEncryptionKey
/encrypt로 post 요청을 보낸다.
이제 yml 파일에서 password 부분을 암호화할 수 있고 암호화한 스트링을 yml에 입력해줄 수 있다.
이때 {cipher} 라고 입력해주어 암호화된 문자임을 인지시킨다.
'{cypher}AQAFcEUL+e52QDtDyRw8cvWB0AmlFYwtv0CkZbnAyduzWWdeV2t93w7mBaMX2XfYhj+KhH1QSIFE87Hgt4STTYXY/BFVN4Kgw7Q7XUtb09oZal/LOC4/eGbMnO/mw/CuX6otYhD+BdA4c5f08pYrMFWo+NyAX7638aIkrGwF3rjOZ0sGAIkeCZnarPLFccPHkBXcMn0aJ+0BbmV3UweuzUcWSf8sTXPkdSe3eEazIAbNfapcDxBYc+yhyUKXtlT21qkDIV9dD/dP3pybjWGm3cB1G0F4QARjikjLDAHOih/GLkFz6JJVcZXMmGhJbcHvYxrKNuHclAFwRTVr3JgMobC64gVJLAHWWrNf/sYRccocbDFqyDBd6M/7CDayprxWwMUQ2BB641DHTtX1XPhnOCyB'
사용 사례
반응형
'Programming > Java, Spring' 카테고리의 다른 글
[Spring Cloud] Kafka 를 사용한 마이크로서비스 간 데이터 전송, 단일 데이터베이스를 사용해 동기화 문제를 해결하기 (0) | 2023.06.02 |
---|---|
[Spring Cloud] 마이크로서비스 간의 통신 RestTemplate, FeignClient, Error decoder, 동기화 문제 (0) | 2023.06.02 |
[Spring Cloud] config에서 대칭키 암호화 설정하기 (0) | 2023.06.01 |
[Spring Cloud] bus, rabbitmq를 이용해 서버 연결하고 actuator를 이용한 갱신 집합화하기 (0) | 2023.06.01 |
[Spring Cloud] Config yml 설정, actuator를 이용한 자동 반영 (0) | 2023.06.01 |