[java] Tomcat에서의 SSL 인증서 설치 및 사용 방법

Tomcat은 웹 애플리케이션을 실행하기 위한 서버로 SSL (Secure Sockets Layer) 인증서를 설치하여 웹 애플리케이션의 보안 수준을 높일 수 있습니다. SSL 인증서를 설치하면 웹 애플리케이션과 클라이언트 간의 통신이 암호화되어 보안이 강화됩니다. 이 글에서는 Tomcat에서 SSL 인증서를 설치하고 사용하는 방법에 대해 알아보겠습니다.

1. SSL 인증서 생성

먼저, SSL 인증서를 생성해야 합니다. SSL 인증서는 공인 인증 기관 (Certification Authority, CA)에서 구입하거나 자체 서명 인증서를 생성하여 사용할 수 있습니다. 자체 서명 인증서를 생성하는 방법은 아래와 같습니다.

  1. 키스토어 파일 생성

    keytool -genkey -alias mycert -keyalg RSA -keystore mykeystore.jks -validity 365
    

    이 명령을 실행하면 키스토어 파일(mykeystore.jks)과 비밀번호를 설정할 수 있는 대화식 프롬프트가 나타납니다. 필요한 정보를 입력하여 키스토어 파일을 생성합니다.

  2. 인증서 요청 CSR (Certificate Signing Request) 생성

    keytool -certreq -alias mycert -file mycert.csr -keystore mykeystore.jks
    

    이 명령을 실행하면 인증서 요청 CSR 파일(mycert.csr)이 생성됩니다.

  3. 자체 서명 인증서 생성

    keytool -gencert -alias mycert -infile mycert.csr -outfile mycert.crt -keystore mykeystore.jks -validity 365
    

    이 명령을 실행하면 자체 서명 인증서 파일(mycert.crt)이 생성됩니다.

  4. 자체 서명 인증서를 키스토어에 추가

    keytool -import -alias mycert -file mycert.crt -keystore mykeystore.jks
    

    이 명령을 실행하여 자체 서명 인증서를 키스토어에 추가합니다.

2. Tomcat 서버 설정

Tomcat 서버에서 SSL 인증서를 사용하려면 server.xml 파일을 수정해야 합니다.

  1. server.xml 파일 열기

    Apache Tomcat 설치 디렉토리에서 conf 폴더로 이동하고 server.xml 파일을 엽니다.

  2. SSL 설정 추가

    <Connector> 요소를 찾아 다음과 같이 수정 또는 추가합니다.

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                 clientAuth="false" sslProtocol="TLS"
                 keystoreFile="/path/to/mykeystore.jks" keystorePass="mykeystore-password" />
    
    • port: SSL 연결에 사용할 포트 번호입니다. 기본적으로 8443 포트를 사용합니다.
    • keystoreFile: 생성한 키스토어 파일의 경로입니다.
    • keystorePass: 키스토어 파일의 비밀번호입니다.
  3. Tomcat 서비스 재시작

    server.xml 파일을 저장한 후 Tomcat 서비스를 재시작하여 변경 사항을 적용합니다.

3. 웹 애플리케이션에서 SSL 사용

SSL 인증서가 설치된 Tomcat 서버에 웹 애플리케이션을 배포하고 사용하려면 애플리케이션의 설정을 변경해야 합니다. Spring Boot를 예로 들어 웹 애플리케이션에서 SSL을 사용하는 방법을 알아보겠습니다.

  1. application.properties 파일 수정

    Spring Boot 애플리케이션의 src/main/resources 폴더에 있는 application.properties 파일을 엽니다.

  2. SSL 설정 추가

    다음과 같이 SSL 설정을 추가합니다.

    server.ssl.key-store=/path/to/mykeystore.jks
    server.ssl.key-store-password=mykeystore-password
    server.ssl.key-password=mykeystore-password
    
    • server.ssl.key-store: 키스토어 파일의 경로입니다.
    • server.ssl.key-store-password: 키스토어 파일의 비밀번호입니다.
    • server.ssl.key-password: 개인 키의 비밀번호입니다.
  3. 애플리케이션 실행

    변경 사항을 저장한 후 Spring Boot 애플리케이션을 실행합니다. 이제 웹 애플리케이션은 SSL을 통해 암호화된 연결을 사용합니다.

위의 방법을 통해 Tomcat 서버에 SSL 인증서를 설치하고 사용하는 방법을 알아보았습니다. SSL 인증서를 설치하여 웹 애플리케이션의 보안을 높이고 클라이언트와 안전한 통신을 할 수 있습니다.

참고 자료