티스토리 뷰
반응형
- KeyTool 생성하기
keytool
-genkeypair # Key를 생성하겠다
-alias apiEncryptionKey # 별칭을 apiEncryptionKey
-keyalg RSA # 알고리즘은 RSA방식
-dname
"CN=Geumbit Kim, # 인증서의 주요 식별 이름
OU=API Development, # 소속 부서
O=gbitkim, # 소속 기관
L=Seoul, ST=KR, C=KR"
-keypass "gbitkim_msa" # 비밀키는 gbitkim_msa 이는 -storepass와 같게해야함
# 아래 jks파일로 만들었기에
-keystore apiEncryptionKey.jks # Key를 생성할때 apiEncryptionKey.jks를 생성하겠다.
-storepass "gbitkim_msa"
keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -dname "CN=Geumbit Kim, OU=API Development, O=gbitkim, L=Seoul, ST=KR, C=KR" -keypass "gbitkim_msa" -keystore apiEncryptionKey.jks -storepass "gbitkim_msa"
다음과 같이 apiEncryption.jks 파일이 생성됨을 알 수 있다.
해당 정보를 확인해보자
keytool -list -keystore apiEncryptionKey.jks -v
geumbit@gimgeumbich-ui-MacBookPro tools % keytool -list -keystore apiEncryptionKey.jks -v
키 저장소 비밀번호 입력:
키 저장소 유형: PKCS12
키 저장소 제공자: SUN
키 저장소에 1개의 항목이 포함되어 있습니다.
별칭 이름: apiencryptionkey
생성 날짜: 2023. 5. 29.
항목 유형: PrivateKeyEntry
인증서 체인 길이: 1
인증서[1]:
소유자: CN=Geumbit Kim, OU=API Development, O=gbitkim, L=Seoul, ST=KR, C=KR
발행자: CN=Geumbit Kim, OU=API Development, O=gbitkim, L=Seoul, ST=KR, C=KR
일련 번호: c9894b98749109ce
적합한 시작 날짜: Mon May 29 22:43:26 KST 2023 종료 날짜: Sun Aug 27 22:43:26 KST 2023
인증서 지문:
SHA1: 44:5B:F9:0A:F6:F2:FF:FE:4C:5C:87:BE:36:B2:AE:C5:8F:EA:CC:24
SHA256: 03:88:9C:C3:AA:55:6B:45:20:CE:4A:DC:E7:F1:1F:54:1F:A2:FB:E1:10:CF:C3:17:B3:0A:F7:0C:54:86:C8:A1
서명 알고리즘 이름: SHA256withRSA
주체 공용 키 알고리즘: 2048비트 RSA 키
버전: 3
확장:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 06 65 F1 8F 3A 6F F2 DE 28 65 4A F1 4F 6D 50 B4 .e..:o..(eJ.OmP.
0010: 83 1A DF 4C ...L
]
]
*******************************************
*******************************************
Public Key 관련 파일 생성
## 인증서 만들기
keytool -export -alias apiEncryptionKey -keystore apiEncryptionKey.jks -rfc -fil
e trustServer.cer
## 공개키 만들기
keytool -import -alias trustServer -file trustServer.cer -keystore publicKey.jks
## 인증서와 관련된 공개키를 생성하고 저장하는 작업
keytool
-import # 인증서를 import [개인키와 인증서]
-alias trustServer #별칭 지정
-file trustServer.cer #import할 인증서 파일의 경로와 파일
-keystore publicKey.jks #새로운 Keystore 파일 생성
## 이미 존재하는 인증서의 공개키를 TrustStore에 등록
keytool
-importcert # 공개키 import 가능
-alias elastic
-file D:\\Dev\\certs_55\\http_ca.crt #import할 인증서 파일의 경로와 파일
-keystore "C:\\Program Files\\Java\\jdk-11.0.16/lib/security/cacerts"
-storepass changeit
결과 파일
apiEncryptionKey.jks # 비밀키
publicKey.jks # 공개키
trustServer.cer # 인증서
두개의 Key정보를 확인하여 비교해보자
keytool -list -keystore apiEncryptionKey.jks
키 저장소 유형: PKCS12
키 저장소 제공자: SUN
키 저장소에 1개의 항목이 포함되어 있습니다.
apiencryptionkey, 2023. 5. 29., PrivateKeyEntry, ## 비공개키
인증서 지문(SHA-256): 03:88:9C:C3:AA:55:6B:45:20:CE:4A:DC:E7:F1:1F:54:1F:A2:FB:E1:10:CF:C3:17:B3:0A:F7:0C:54:86:C8:A1
keytool -list -keystore publicKey.jks
키 저장소 유형: PKCS12
키 저장소 제공자: SUN
키 저장소에 1개의 항목이 포함되어 있습니다.
trustserver, 2023. 5. 29., trustedCertEntry, ## 공개키
인증서 지문(SHA-256): 03:88:9C:C3:AA:55:6B:45:20:CE:4A:DC:E7:F1:1F:54:1F:A2:FB:E1:10:CF:C3:17:B3:0A:F7:0C:54:86:C8:A1
geumbit@gimgeumbich-ui-MacBookPro tools %
이 후에 config-service - bootstrap.yml 파일에 아래와 같이 추가한다.
encrypt:
key-store:
location: file://${user.home}/study/tools/apiEncryptionKey.jks
password: ~
alias: apiEncryptionKey
기존 8888이 바라보고 있던 msa-config/아래 파일에 데이터 확인
application.yml 파일 일부 적용 및 재기동
token:
expiration_hours: 24
secret: "{cipher}AQBj/FfJ8zIanJkmPe7MpwzM8HJc/eF4ziysueAa+hrj3u1at+UitThsn8J9WEhFYH7N0OkyMA8W8LPJWQvsD87bbVk1fJMTIU5wn6f3OgsZCQ10oC7SwIUr6u/OBy0/LGLl0CSEWf69YNA44WHxVgCz5Qhm7mh1pl4uW9nOMLCxvdj/jO03/UGOF6rsxvune1pi5Lsq/JPY4jr+SCU+AkkfGDauNqTBS0+L4EXM97QwZFFMeTRXsfYDaJMcZBre88thBh6UCBodYnen819ss9Ts69zVkzTfvabYAvcgFn9FeglESaOpv2+0GxhQuVjwhViTQU2cbMqKVu5MHS+E/JKN8siLivyXi/lL2Hf0gOf0BLnuMYJKDKu74uhnt0VRi9A="
{cipher}~의 경우 암호화되어있음을 감지, 8888 포트 서버에 RSA 관련 비공개 jks 등록
반응형
'MSA' 카테고리의 다른 글
Section 11: 데이터 동기화를 위한 Apache Kafka의 활용 ① (0) | 2023.06.07 |
---|---|
Section 10: 마이크로서비스간 통신 (0) | 2023.06.07 |
Section 8: Spring Cloud Bus (0) | 2023.06.07 |
Section 7: Configuration Service (0) | 2023.06.07 |
Section 6: Users Microservice-2 (1) | 2023.06.07 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Vue
- Vuex
- JPA
- MAC
- 스트림
- 최종연산
- AnnotationConfigApplicationContext
- 람다
- vscode
- install
- 영속성 컨텍스트
- NPM
- 중간연산
- container
- map
- java
- webpack
- stream
- 차이
- elasticsearch
- docker
- ApplicationContext
- 자바8
- lambda
- nginx
- BeanFactory
- Intellij
- springboot
- ngnix
- mvn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함