: 암호화와 복호화 방식에 쓰인 키가 서로 같을 때
: 암호화와 복호화 방식에 쓰인 키가 서로 다를 때
: 공개키, 비밀키를 사용
(서로 다른 키로만 하면됨)
→public으로 암호화하면, 복호화는 private키로 하면됨
→private으로 암호화하면, 복호화는 public키로 하면됨
git repo , storage → (암호화) → springcloud(복호화) → msa로 전달
Java Cryptography Extension (JCE)
- https://www.oracle.com/java/technologies/javase-jce-all-downloads.html
Windows
- Oracle JDK
{user.home}\Program Files\Java\jdk-13.0.2\conf\security
MacOS
- Oracle JDK
{user.home}/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/security
- Open JDK
{user.home}/Library/Java/JavaVirtualMachines/openjdk-14.0.2/Contents/Home/conf/security
bootstrap.yml
encrypt:
key: abcdefghkl123!
datasource: # ??? ?? ??? ?? ??!!!
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:testdb
# username: sa
# password:
이것을 config-service가 참고하는 native , search-locations: file에 붙여 넣는다
이렇게 앞에다가 {cipher}이라고 명시해 놓으면 암호회된 데이터라는 뜻이다.(만약 원래 비밀번호인 1234를 암호화 시켜도 암호화 시킨 문자열을 그대로 붙여 넣어 놓으면, 그냥 plain text로 인식함
이렇게 config -service에서 읽어드린 환경설정 파일을 확인하면 복호화되어서 보여지는 것을 알 수 있다.
그리고 원래는 비밀번호 없이 사용했지만, 설정한 순간부터는 1234를 입력해야 접속 할 수 있다.
Config-service 에 작성
user-service.yml파일에 1234 를 암호화 시킨 값을 붙여 넣음
apigateway-service bootstrap.yml파일도 바꿔준다
현재 ecommerce라는 이름의 yml파일을 참조
이것을 암호화 시킴
웹에서 확인시
암호화 secretkey경우 둘다 application.yml파일을 참조하기 때문에(config-service, user-service)
이 파일에다가 seret key를 설정해 놓는것이 좋다