본문 바로가기
개발, IT

Tomcat SSL 설정

by Nabi™ 2009. 1. 16.


A.   CSR 생성

 

1.       Keystore 에 개인키를 만듭니다.

% keytool -genkey -keyalg RSA -alias tomcat -keystore mystore

 

Enter keystore password: 
[
키스토어 파일 비밀번호를 입력합니다. ].

What is your first and last name?
  [Unknown]:
  www.mydomain.com (도메인명:입력예시)
What is the name of your organizational unit?
  [Unknown]:
  EC Team (
부서명: 입력예시)
What is the name of your organization?
  [Unknown]:
  Nine4u Inc. (
업체명:입력예시)
What is the name of your City or Locality?
  [Unknown]:
  Kangnamgu (
지역:입력예시)
What is the name of your State or Province?
  [Unknown]:
  SEOUL (
//:입력예시)
What is the two-letter country code for this unit?
  [Unknown]:
  KR (
입력예시)
Is CN=www.mydomain.com, OU=EC Team, O=Nine4u Inc., L=Kangnamgu, ST=SEOUL, C=KR correct?
  [no]:  yes

Enter key password for <tomcat>
        (RETURN if same as keystore password): [
여기서는 엔터를 입력, keystore 와 같은 비밀번호로 키비밀번호를 설정하세요.]

 

; tomcat 은 키의 alias 이름으로 임의로 만듭니다.

; mystore keystore이름으로 임의로 만듭니다.

 

ð      keystore 파일 mystore JDK/bin 디렉토리에 생성될 것입니다.

ð      반드시 안전한 곳에 백업 받아 두시기 바랍니다.

ð      Keystore 의 내용 확인은 다음 명령으로 해보실 수 있습니다.

% keytool -list -keystore [keystorename]

 

2.       CSR 생성

% keytool -certreq -alias tomcat -keyalg  RSA -file certreq.csr -keystore mystore

Enter keystore password: [앞서설정한 비밀번호입니다. ]

 CSR 파일은 JDK/bin 디렉토리에 certreq.csr 로 생성됩니다. 파일의 내용을 보시면

-----BEGIN NEW CERTIFICATE REQUEST-----
                              
and
-----END NEW CERTIFICATE REQUEST-----

위와 같은 형태를 가집니다.

위의 -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지의 내용을 모두 포함하여 CSR 입니다.

 

3.       써트코리아(www.certkorea.co.kr) 에서 인증서 신청하실 때 CSR 직접입력을 선택하시고, 위에서 생성하신 CSR 내용을 복사 입력하세요.

 

      써트코리아에서 인증서 발급이 되면 이메일로 인증서가 전송 됩니다.

 

    B. 인증서 설치.

 

1.       앞서 생성한 keystore 파일에 인증서 import

% keytool -import -alias tomcat -trustcacerts -file mythawtecert.txt  -keystore mystore

      ; alias 이름은 CSR생성과정 중 키 생성시에 만드신 이름입니다.

      ; mystore 는 앞서 CSR 생성시에 만드신 keystore 파일 이름입니다.

 

2.       웹서버 설정

환경설정 파일은 톰캣홈/conf/server.xml 파일입니다. 파일 내용을 오픈해 보시면, 기본적으로 SSL 설정항목이 있고 주석처리 되어 있습니다. 주석 부분을 없애고 위에 생성하신 keystore 정보로 변경 해 주신 뒤에 restart 하시면 됩니다.

다음 예시를 참고 하셔서 환경설정 파일을 수정하세요.

 

Tomcat 버젼 5.X 의 경우..

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->

<Connector port="443"

   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

   enableLookups="false" disableUploadTimeout="true"

   acceptCount="100" debug="0" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

   keystoreFile="키스토어파일위치/mystore"

   keystorePass="[keystore 암호]" />

Tomcat 버전 4.X 의 경우. 
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
     port="443" minProcessors="5" maxProcessors="75"
     enableLookups="true"
     acceptCount="100" debug="0" scheme="https" secure="true"
     useURIValidationHack="false" disableUploadTimeout="true">
   <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
         clientAuth="false" protocol="TLS"
         keystoreFile="키스토어파일위치/mystore"
         keystorePass="[keystore 암호]" />
</Connector>

   ; 톰캣은 기본적으로 8443 포트를 ssl 포트로 설정해 두었습니다. 443 으로 변경합니다.

   ; 위에 붉은색 부분을 앞서 생성하신 정보로 맞게 설정해 주십니다.

 

3.       웹서버 재시작

% bin/shutdown.sh

% bin/startup.sh

 

C. Apache 인증서 Tomcat keystore 로 변환.

(주의) Tomcat 5 이상에서만 PKCS#12 format keystore 를 지원합니다.

Apache 용으로 받으신 인증서를 tomcat 에서 사용하실 때 변환방법 입니다.  

 

1. 인증서 변환

 

% openssl pkcs12 -export -in mycert.crt -inkey mykey.key -out mycert.p12 -name tomcat -CAfile ThawteServerCA.cer -caname root -chain

; mycert.crt  는 아파치용으로 받으신 인증서 입니다.

; mykey.key 는 아파치용으로 받으신 키 입니다.

; mycert.p12 PKCS#12 포멧의 인증서로 keystore 로 사용하시면 됩니다.

; -name tomcat tomcat key alias 명입니다.

; ThawteServerCA.cer Thawte root CA 인증서입니다.

다음 link에서 다운 받으세요. http://www.thawte.com/roots/

 

2. 톰캣 환경설정 파일 수정

환경설정 파일내에 다음 항목을 추가 하세요.

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->

<Connector port="443"

   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

   enableLookups="false" disableUploadTimeout="true"

   acceptCount="100" debug="0" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreType="pkcs12"

   keystoreFiles="키스토어파일위치/mycert.p12"

 keystorePass="[keystore 암호]" />

 

 

3. 재시작~



좋은정보가 되셨다면 아래 한번 클릭해주세요^^



댓글