본문으로 건너뛰기

Tomcat 서버에 SSL 인증서 설치(PFX 형식)

Tomcat 서버에 SSL 인증서를 설치하면 Tomcat 서버에서 HTTPS 보안 접속을 지원할 수 있습니다. 본 문서에서는 Tomcat 서버에 SSL 인증서를 설치하는 방법을 안내합니다.

설명

본 문서에서는 Tomcat 버전을 tomcat9.0.13 기준으로 예시를 들어 설명합니다. 설치 전 443 포트가 사용 중이 아닌지 확인하시기 바랍니다. 443 포트가 이미 사용 중인 경우 인증서 설치 시 다른 포트를 바인딩해 주세요.

인증서 가져오기

  1. 당사에서 인증서를 발급한 후 압축된 인증서 파일(.zip 형식)을 제공해 드립니다. 압축 파일 안에는 Tomcat, Nginx, IIS, Apache 총 4가지 인증서 형식에 해당하는 4개의 폴더가 있습니다. 본 문서에서는 PFX 형식으로 설치를 진행하므로 IIS 폴더 내의 인증서를 사용해야 합니다. (폴더마다 파일 형식만 다를 뿐 다른 폴더의 파일을 사용해도 충돌이 발생하지 않습니다.)
  2. IIS 폴더에는 세 개의 파일이 포함되어 있습니다,
  • domain_com.pfx 인증서 파일
  • domain_com.key 개인키 파일
  • password.txt 인증서 비밀번호 파일

SSL 인증서 설치

  1. 가져온 domain_com.pfx 인증서 파일을 로컬 디렉터리에서 Tomcat 서버의 /usr/tomcat9.0.13/conf 디렉터리로 복사합니다. Tomcat 버전에 따라 경로 이름이 약간 다를 수 있으니 사용 중인 서비스에 해당하는 경로로 이동해 작업하시기 바랍니다.
  2. /usr/tomcat9.0.13/conf 디렉터리에 있는 server.xml 파일을 편집합니다. server.xml 파일에 Connector 속성을 추가합니다. 내용은 다음과 같습니다:
<Connector port="443"  
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 인증서 경로 -->
keystoreType="PKCS12"
keystorePass="인증서 비밀번호" <! -- password.txt 비밀번호 파일의 내용으로 교체해 주세요 -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
  1. 설정 파일을 저장한 후 bin 디렉터리에서 아래 명령을 실행하여 설정이 올바른지 확인합니다.
./configtest.sh
  1. Tomcat을 재시작한 후 bin 디렉터리에서 다음 명령을 실행합니다:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

SSL 인증서 테스트

브라우저 주소창에 SSL 인증서가 바인딩된 도메인을 입력하여 SSL 인증서가 정상적으로 설치되었는지 테스트하세요. 설치가 성공하면 브라우저 주소창에 보안 자물쇠 아이콘이 표시되며, 클릭 시 인증서 정보를 확인할 수 있습니다.

SSL 인증서 효과

HTTP 자동 HTTPS 리디렉션 보안 설정(선택 사항)

HTTP 요청을 자동으로 HTTPS로 리디렉션하려면 다음 단계를 따라 설정하세요:

  1. /usr/tomcat9.0.13/conf 디렉터리에 있는 web.xml 파일을 편집하여 </welcome-file-list> 태그를 찾습니다.
  2. 종료 태그 </welcome-file-list> 뒤에 줄 바꿈을 하고 아래 내용을 추가합니다.
<login-config>  
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
  1. /usr/tomcat9.0.13/conf 디렉터리 아래의 server.xml 파일을 편집하여 redirectPort 매개변수를 SSL의 connector 포트, 즉 443 포트로 수정합니다. 예시는 다음과 같습니다:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
  1. 구성 파일을 저장하고 bin 디렉터리에서 다음 명령을 실행하여 구성이 올바른지 확인합니다.
./configtest.sh
  1. 설정에 문제가 없으면 Tomcat 서버를 재시작한 후 도메인으로 접속할 수 있으며, HTTP가 자동으로 HTTPS로 리디렉션됩니다.
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器