JKS 인증서 생성 - JKS injeungseo saengseong

ImportKey.java

0.01MB

ImportKey.java_3depth.txt

0.01MB

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

JKS 인증서 생성 - JKS injeungseo saengseong

2. 위와같이 진행하였으면, 사용자 폴더에 인증서가 생성됩니다.

예시경로 C:\Users\HYUK

JKS 인증서 생성 - JKS injeungseo saengseong

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

JKS 인증서 생성 - JKS injeungseo saengseong
JKS 인증서 생성 - JKS injeungseo saengseong

테스트를 진행할 수 있는 privateKey 와 publicKey를 생성하였습니다.


JAVA KEYSTORE(JKS)

자바를 이용하여 PrivateKey를 암호화하여 자신의 인증서가 담긴 바이너리 파일을 생성합니다.

5. ImportKey.java 수정

KeyStore를만들기 위하여 keypass, defaultalias, keystorename 을 수정합니다.

 - 첨부파일 참조

JKS 인증서 생성 - JKS injeungseo saengseong

6. ImportKey.java 컴파일

수정을 진행하였다면, 해당 파일 경로로 이동하여 컴파일을 진행합니다. ( 이때 Java는 환경변수 셋업이 되어 있어야 합니다. )

컴파일이 정상적으로 진행되었다면 ImportKey.class 파일이 생성됩니다.

JKS 인증서 생성 - JKS injeungseo saengseong

7. JKS생성

컴파일된 Class 파일을 이용하여 JKS를 생성합니다. 만약 인증기관에서 발급받은 CA 인증서가 있다면 아래와 같은 순서로 기입합니다.

java ImportKey [priavateKey] [publicKey] [IntermediateCA] [rootCA]

예 ) java ImportKey suhyuk.private.der suhyuk.public.der

JKS 인증서 생성 - JKS injeungseo saengseong

8. 생성된 JKS 파일 확인

Keytool 명령어를 통하여 해당 JKS 파일안에 들어있는 인증서를 확인 할 수 있습니다.

keytool -v -list -keystore [Keystore 파일]

예 ) keytool -v -list -keystore kyleNoh_keystore.jks

JKS 인증서 생성 - JKS injeungseo saengseong

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

JKS 인증서 생성 - JKS injeungseo saengseong