ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • keytool 을 이용하여 인증서 받기
    개발 2009. 10. 1. 13:10
    1. 먼저 keytool을 이용하여 key를 생성한다.
      keytool -genkey -keystore keystore -keyalg RSA

      - getkey : 키를 생성한다.
      - keystore : 키를 저장할 파일을 지정한다. 지정하지 않을 경우 계정디렉토리의 .keystore 파일이 생성된다.
      - keyalg : 생성 알고리즘을 정한다.

      명령이 실행되면 여러가지 입력요청을 받는다. 하나하나 넣어주자.
      그러면 여기에서는 키값인 keystore 파일이 생성된다.

    2. 생성된 이 키값으로도 SSL서버가 구현되고 클라이언트와 통신도 가능하다.
      하지만 여기에 인증서를 추가해보자.

      인증서를 신청하기 위해서는 csr 파일을 만들어야 한다. csr 파일을 추출해보자.

      keytool -certreq -keyalg RSA -file csr.txt -keystore keystore

      - certreq : csr 파일을 추출한다.
      - file : 추출한 파일을 저장할 파일

      위와 같은 명령어를 실행하면 csr.txt 파일을 생성된다. 이 파일을 가지고 인증서를 요청한다.

      http://crosscert.com/service_global/Main.jsp (한극전자인증) 에서 인증서를 받을 수 있으며
      구입하기 전에 Trial 인증서를 신청할 수 있다.

    3. 인증서 메일이 오면 각각의 인증서를 파일로 만들어 keystore 에 생성한다.
      (메일에 첨부파일은 없다. 드래그 하여 내용을 복사한 후 파일로 만든다.)

      루트증명서 : root.txt
      중간증명서 : inter.txt
      증명서 : sign.txt

    4. 루트증명서를 keystore 에 등록
     
      keytool -import -alias root -keystore keystore -file root.txt

      - import : 해당파일을 임포트한다.
      - alias : 별칭으로 등록한다. 여기에서는 root.txt 파일에 대한 별칭이며 map 의 Key 값과 비슷하게 보면 된다.
      나중에 keystore 에서 루트인증서를 export 할 경우, 이때의 키값을 root 로 이용한다.

    5. 중간증명서를 keystore 에 등록

      keytool -import -alias inter -keystore keystore -file inter.txt

    6. 증명서를 keystore 에 등록
     
      keytool -import -alias sign -keystore keystore -file sign.txt

    7. 이로써 인증서 등록이 끝났다.


    자바에서 이 인증서로 서버를 구동시킬 경우 명령행에 다음과 같이 입력한다.

      # java -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword={비밀번호} {프로그램}

    프로그램 안에서 직접 세팅 할 경우에는 소스에 다음과 같이 입력한다.

      System.setProperty("javax.net.ssl.keyStore", "keystore");
      System.setProperty("javax.net.ssl.keyStorePassword", "{비밀번호}");

    클라이언트를 구동시킬 경우 다음과 같이 입력한다.

      java -Djavax.net.ssl.trustStore=keystore -Djavax.net.ssl.trustStorePassword={비밀번호} {프로그램}

    프로그램 안에서 직접 세팅 할 경우 소스에 다음과 같이 입력한다.

      System.setProperty("javax.net.ssl.trustStore", "keystore");
      System.setProperty("javax.net.ssl.trustStorePassword", "{비밀번호}");

    반응형

    댓글 0

Designed by Tistory.