[java] Tomcat에서 SSL 지원 설정 방법

Tomcat은 웹 애플리케이션을 실행하는 데 사용되는 Java 기반의 웹 서버입니다. Tomcat을 SSL(Secure Sockets Layer)을 지원하도록 설정하면 웹 애플리케이션의 데이터 통신을 암호화하여 보안을 강화할 수 있습니다. 이 문서에서는 Tomcat에서 SSL을 지원하도록 설정하는 방법에 대해 알아보겠습니다.

1. SSL 인증서 생성 및 설치

먼저 SSL 인증서를 생성하여 Tomcat에 설치해야 합니다. SSL 인증서는 공인된 인증 기관(Certificate Authority)에 의해 서명된 유효한 인증서여야 합니다. SSL 인증서 생성에는 보통 다음과 같은 단계가 포함됩니다.

  1. 개인 키 생성: 키 저장소(KeyStore)에서 사용할 개인 키를 생성합니다.
  2. CSR 생성: 인증 기관에게 제출할 개인 키와 함께 서명 요청(Certificate Signing Request, CSR)을 생성합니다.
  3. 인증서 발급: 인증 기관에서 CSR을 확인하고 유효한 인증서를 발급합니다.
  4. 인증서 설치: 발급된 인증서를 Tomcat의 키 저장소에 설치합니다.

자세한 인증서 생성 및 설치 과정은 인증 기관과 SSL 인증서 발급자의 지침을 따르시기 바랍니다.

2. server.xml 파일 수정

Tomcat의 설정 파일인 server.xml을 수정하여 SSL 지원을 활성화해야 합니다. 아래의 예시를 참고하여 server.xml 파일을 수정하세요.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeyFile="/path/to/private/key"
                     certificateFile="/path/to/issued/certificate"
                     certificateChainFile="/path/to/intermediate/certificates" />
    </SSLHostConfig>
</Connector>

위 예시에서 /path/to/private/key, /path/to/issued/certificate, /path/to/intermediate/certificates 경로를 SSL 인증서와 관련된 파일의 경로로 수정해야 합니다.

3. Connector 추가 설정

위의 단계 이후에도 추가적인 설정이 필요한 경우에는 아래의 단계를 따르세요.

3.1. HTTPS 포트 및 프로토콜 지정

HTTPS 포트와 프로토콜을 명시적으로 지정할 수 있습니다. 아래의 예시를 참고하여 server.xml 파일을 수정하세요.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           scheme="https" secure="true"
           keystoreFile="/path/to/keystore" keystorePass="PASSWORD" />

위 예시에서 /path/to/keystore 경로를 실제 keystore 파일의 경로로 수정해야 합니다. keystorePass는 keystore 파일의 비밀번호로 변경해야 합니다.

3.2. HTTPS 전용 리디렉션

HTTP로 접속했을 때 자동으로 HTTPS로 리디렉션하는 설정도 추가할 수 있습니다. 이렇게 하면 사용자가 암호화되지 않은 연결을 사용하는 것을 방지할 수 있습니다. 아래의 예시를 참고하여 server.xml 파일을 수정하세요.

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           redirectPort="8443" />

위 예시에서 redirectPort 속성을 SSL 포트로 설정하여 HTTP로 접속한 경우 자동으로 HTTPS로 리디렉션됩니다.

4. Tomcat 재시작

위의 모든 설정을 마친 후에는 Tomcat을 재시작해야 합니다. 이제 Tomcat이 SSL을 지원하도록 구성되었으며, HTTPS를 사용하여 웹 애플리케이션에 접속할 수 있습니다.

위의 단계에 대한 자세한 내용은 Apache Tomcat 공식 문서를 참고하세요.

참고 자료: