Tomcat에서 SSL 인증서 설정을 통한 HTTPS 구성 가이드

Tomcat 서버에 SSL 인증서를 적용하여 HTTPS 서비스 활성화하기

웹 애플리케이션의 보안 강화를 위해 Tomcat 서버에 SSL/TLS 인증서를 설치하고 HTTPS 연결을 활성화하는 과정은 필수적입니다. 아래 절차를 따라 안전한 통신 환경을 구축할 수 있으며, 이는 검색 엔진 최적화(SEO) 측면에서도 긍정적인 영향을 미칩니다.

1. 인증서 발급 준비

신뢰할 수 있는 인증 기관(CA)으로부터 SSL 인증서를 발급받기 위해 먼저 CSR(인증서 서명 요청) 파일을 생성해야 합니다. 다음 명령어를 사용하세요:

keytool -certreq -alias tomcat -keystore keystore.jks -file certrequest.csr

이 명령은 기존 키스토어에서 CSR을 추출합니다. 이를 CA에 제출하고 도메인 소유권과 조직 정보를 인증한 후, 인증서를 받게 됩니다.

2. 루트 및 중간 인증서 다운로드

CA는 주로 체인 형태의 인증서(루트 + 중간 인증서)를 제공합니다. 이를 하나의 PEM 파일(ca-chain.pem)로 병합하여 신뢰 체인을 완성해야 합니다. 예시 구조:

-----BEGIN CERTIFICATE-----
[Intermediate CA Certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Root CA Certificate]
-----END CERTIFICATE-----

3. 인증서 체인을 키스토어에 임포트

먼저 CA에서 제공된 체인 인증서를 키스토어에 추가합니다:

keytool -import -alias ca-root -keystore keystore.jks -trustcacerts -file ca-chain.pem

다음으로, 발급받은 도메인 인증서를 동일한 키스토어에 등록합니다:

keytool -import -alias tomcat -keystore keystore.jks -file your_domain.crt

4. server.xml에 HTTPS 커넥터 설정

Tomcat의 conf/server.xml 파일을 열고, 기존의 HTTP 커넥터 아래에 새로운 SSL 커넥터를 추가합니다:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="200" SSLEnabled="true"
           scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="/path/to/keystore.jks"
           keystorePass="changeit"
           keyAlias="tomcat" />
  • keystoreFile: 키스토어 파일의 절대 경로를 지정합니다.
  • keystorePass: 키스토어 암호를 입력합니다 (기본값은 'changeit'인 경우 많음).
  • keyAlias: 인증서가 저장된 별칭을 명시합니다.

5. HTTP 자동 리디렉션 설정 (옵션)

모든 HTTP 요청을 HTTPS로 리디렉션하려면, web.xml 파일 마지막에 다음 설정을 추가합니다:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protected Context</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-role>
    <role-name>protected</role-name>
</security-role>

또한 server.xml의 HTTP 커넥터에 다음 속성을 추가해 리디렉션 포트를 연결합니다:

redirectPort="8443"

6. 서버 재시작 및 확인

설정 완료 후 Tomcat을 재시작합니다:

./bin/shutdown.sh
./bin/startup.sh

브라우저에서 https://도메인:8443 으로 접속하여 잠금 아이콘과 인증서 정보가 정상 표시되는지 확인합니다.

보안 강화 팁

  • TLS 1.2 이상만 허용하도록 sslProtocol="TLS" 설정을 유지합니다.
  • 불필요한 프로토콜(SSLv3 등)은 별도의 excludeProtocols 옵션으로 차단합니다.
  • 키스토어 파일 권한을 600으로 설정하여 외부 접근을 방지합니다.

태그: Tomcat SSL HTTPS TLS keytool

5월 26일 21:37에 게시됨