keystore로 받은 인증서를 사용해보자

SSL인증서가 필요하여 인증기관으로부터 인증서를 구매했다.
난 pem파일로 된 인증서가 필요한데, 인증기관에서 keystore파일을 보내줬다면?!
다시 인증기관에게 연락해서 pem파일로 다시 달라고 하면 되겠지만,
아마추어처럼 보이니 직접 키를 뽑아내보자.

keystore 파일이란?

  • 확실하진 않지만, wildcard인증서를 Tomcat기반으로 수령하게 되면 keystore형식으로 주는 듯 함
  • Java SDK와 함께 배포되는 keytool로 관리되는 일종의 key database [참고]
  • 다음과 같이 JRE를 설치해도 사용가능
    $ sudo apt-get install openjdk-8-jre-headless
    

keystore 파일을 p12파일로..

  • 한글 정보 : [SSL] Keystore에서 PEM 추출하기
  • 아래와 같이 keytool을 이용하여 p12파일 추출(추출 암호와 생성 암호를 동일하게 지정할 것)
    $ keytool -importkeystore -srckeystore [KEYSTORE] -destkeystore keystore.p12 -deststoretype PKCS12
    Importing [KEYSTORE] keystore to keystore.p12...
    Enter destination keystore password:  
    Re-enter new password:
    Enter source keystore password:  
    Entry for alias ca successfully imported.
    Entry for alias chain successfully imported.
    Entry for alias alias successfully imported.
    Import command completed:  3 entries successfully imported, 0 entries failed or cancelled
    
  • 이렇게 p12파일이 생성되면, GUI단의 앱(View file)에서 인증서 목록과 내용을 확인할 수 있음
    • 여기서도 바로 인증서를 export 가능

인증서 목록을 pem으로 바꾸기

  • openssh를 이용하여 p12파일로 부터 인증서를 pem형식으로 가져오기
  • 참고 자료 : Converting a Java Keystore into PEM Format
  • 아래와 같이 통채로 pem으로 바꾸기
    $ openssl pkcs12 -in keystore.p12 -out certificates.pem
    Enter Import Password:
    MAC verified OK
    Enter PEM pass phrase:
    
  • 이 중 alias를 보고 본인의 Server Certificate를 찾으면 됨
    • 나머지는 Chain Certificate

PrivateKey를 꺼내자

기타 도움되는 자료

  • https://www.securesign.kr/guides/SSL-Certificate-Convert-Format