OPENSSL
1. CMD창에서 openssl.exe 파일이 있는 경로에서 아래 명령어를 입력합니다.
openssl req -x509 -nodes -sha256 -days 3650 -newkey rsa:2048 -keyout suhyuk.key -out suhyuk.crt
* Unable to load config info from …. 에러가 난 경우 설정파일을 찾지 못하여 발생하였음으로 셋업이 필요합니다.openssl.cnf 가 있는 경로를 지정. SET OPENSSL_CONF=C:\openssl-0.9.8k_X64\openssl.cnf
2. 위와같이 진행하였으면, 사용자 폴더에 인증서가 생성됩니다.
예시경로 C:\Users\HYUK
3. PrivateKey 변환
nocrypt 옵션은 생성시 입력한 비밀번호를 다시 넣지 않도록 합니다.
pem >> key 로 변환할때
openssl pkcs8 -topk8 -in [privateKeyName].pem -out [privateKeyName].key -outform der
.key >> . der 로 변환할때
openssl pkcs8 -topk8 -nocrypt -in [privateKeyName].key -outform DER -out [privateKeyName].der
Private key : openssl pkcs8 -topk8 -nocrypt -in D:\OpenSSL\suhyuk.key -outform DER -out suhyuk.private.der
4. PublicKey 변환
정식 인증기관에서 발급받은 인증서의 경우 체인형태로 이뤄지지만 Openssl을 통해 생성한 경우, 인증체인이 없습니다.
이를 SelfSigned 인증서라고도 합니다.
openssl x509 -in [publicKeyName].crt -out [publicKeyName].der -outform DER
Public key : openssl x509 -in D:\OpenSSL\suhyuk.crt -out suhyuk.public.der -outform DER
테스트를 진행할 수 있는 privateKey 와 publicKey를 생성하였습니다.
JAVA KEYSTORE(JKS)
자바를 이용하여 PrivateKey를 암호화하여 자신의 인증서가 담긴 바이너리 파일을 생성합니다.
5. ImportKey.java 수정
KeyStore를만들기 위하여 keypass, defaultalias, keystorename 을 수정합니다.
- 첨부파일 참조
6. ImportKey.java 컴파일
수정을 진행하였다면, 해당 파일 경로로 이동하여 컴파일을 진행합니다. ( 이때 Java는 환경변수 셋업이 되어 있어야 합니다. )
컴파일이 정상적으로 진행되었다면 ImportKey.class 파일이 생성됩니다.
7. JKS생성
컴파일된 Class 파일을 이용하여 JKS를 생성합니다. 만약 인증기관에서 발급받은 CA 인증서가 있다면 아래와 같은 순서로 기입합니다.
java ImportKey [priavateKey] [publicKey] [IntermediateCA] [rootCA]
예 ) java ImportKey suhyuk.private.der suhyuk.public.der
8. 생성된 JKS 파일 확인
Keytool 명령어를 통하여 해당 JKS 파일안에 들어있는 인증서를 확인 할 수 있습니다.
keytool -v -list -keystore [Keystore 파일]
예 ) keytool -v -list -keystore kyleNoh_keystore.jks
9. 신뢰할 수 있는 인증서 등록
TrustStore는 자신이 아닌 상대방의 PublicKey와 CA를 등록함으로써 신뢰할 수 있는 인증서를 알립니다.
데이터를 송신할 때, 상대방과 HandShake를 할때 사용합니다.
Keytool -import -v -trustcacerts -alias [저장될 파트너 PublicKey.der의 별칭] -file [파트너의 PublicKey.der] -Keystore [저장될 KeySotre명칭].jks -keypass [KeyStore의 비밀번호]
Keytool -import -v -trustcacerts -alias test -file test.der -Keystore kyleNoh_keystore.jks -keypass manage
'IT > ETC' 카테고리의 다른 글
Windows에서 core process 수 지정하는 방법 (0) | 2019.08.16 |
---|---|
Certificate for OpenSSL & KeyTool (0) | 2019.07.23 |
Window10 파티션 분할 (0) | 2019.05.16 |