운영체제 관리/톰캣(Tomcat)

windows-xp에 아파치-톰캣 연동 후 아파치 SSL 인증서로 톰캣 SSL 연동하기

본클라쓰 2010. 4. 7. 11:56

■ 톰캣에 SSL 인증서 생성 방법

 

톰캣의 SSL 설정은 server.xml 설정파일에서 수정하며 된다. 우선 톰캣에 SSL설정을 지정하기 전에 인증서 생성 방식에 대해 알아보자. 톰캣은 인증서로 JKS(Java KeyStore) 포맷만 사용 가능하다. JKS는 PKCS11 형태와 PKCS12 형태의 key를 사용한다.(PKCS12는 국제 표준입니다.) 이 포맷은 자바의 JDK 의 Keytool 로 생성 가능하다.

 

keytool 을 사용하여 인증서를 생성하는 방법은 아래와 같다.

 

{자바 홈}/bin 이동

> keytool -genkey -alias tomcat -keyalg RSA

 

인증서는 Openssl로 생성할 수도 있고 여러 방법이 있다.

 

 

 

톰캣에 SSL 보안서버 적용방법

 

톰캣에 SSL 적용 방법은 두 가지가 있다.

 

1. JSSE : 자바 실행 환경에서 SSL 적용(독자적인 톰캣 설정)

2. APR : Apache Portable Runtime. 아파치와 톰캣이 연동되어 있는 상태에서 아파치 인증서를 톰캣에서 사용하는 방법 

 

 아파치와 톰캣에 연동되어 있고 아파치에 SSL이 적용되어 있다면 톰캣도 아파치의 SSL 인증서를 사용하여 SSL를 구축할 수 있다. 이 방법은 다음과 같다. 

 

 

 

APR 을 적용한 server.xml 파일 수정

 

APR은 아파치와 톰캣이 연동되어 있을 때 사용하는 방법으로 아파치에 openssl 을 사용한 인증서를 SSL에 등록한 후 아파치에 SSL이 동작할 때 사용할 수 있다. APR은 아파치 인증서를 톰캣이 같이 사용하는 방법을 제공한다. 우선 APR은 필요한 패키지가 있다. 필요한 패키지는 "libapr1-dev" 패키지와 openssl에서 사용하는 "libssl-dev" 패키지가 설치되어 있어야 적용이 가능하다. 톰캣에 APR을 적용하여 SSL을 동작하게 하는 방법은 다음과 같다.

 

server.xml 파일을 연 후 </Engine> 태그위에 아래와 같이 작성한다. 이 때 <Listener>태그가 먼저 와야 인증서를 제대로 읽을 수 있다. <Connector> 태그에 SSLCertificateFile 속성에 crt 파일의 경로를 지정하고 SSLCertificateKeyFile 속성에 .key 파일의 경로를 지정한다.

 

    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine=on" SSLRandomSeed="builtin" />

    <Connector port="443" maxHttpHeaderSize="8192"

                maxThreads="150"

                enableLookups="false" disableUploadTimeout="true"

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

                SSLEnabled="true"

                SSLCertificateFile="C:/server/Apache2.2/conf/ssl/my-server.crt"

                SSLCertificateKeyFile="C:/server/Apache2.2/conf/ssl/my-server.key"

    /> 

</Engine> 

 

실제 수정한 내용 

 

주의할 점은 <Listener> 태그가 앞에 와야 crt 파일과 key 파일로 지정한 경로를 제대로 읽을 수 있다.

 

위와 같이 설정을 마쳤다면 URL 주소의 프로토콜 값을 "http:" 와 "https:"를 사용하여 같은 페이지를 요청하여 인증서 방식이 동작하면 설정이 완료된 것이다.