Tomcat 서버에 SSL 인증서 설치(PFX 형식)
Tomcat 서버에 SSL 인증서를 설치하면 Tomcat 서버에서 HTTPS 보안 접속을 지원할 수 있습니다. 본 문서에서는 Tomcat 서버에 SSL 인증서를 설치하는 방법을 안내합니다.
설명
본 문서에서는 Tomcat 버전을 tomcat9.0.13 기준으로 예시를 들어 설명합니다.
설치 전 443 포트가 사용 중이 아닌지 확인하시기 바랍니다. 443 포트가 이미 사용 중인 경우 인증서 설치 시 다른 포트를 바인딩해 주세요.
인증서 가져오기
- 당사에서 인증서를 발급한 후 압축된 인증서 파일(.zip 형식)을 제공해 드립니다. 압축 파일 안에는 Tomcat, Nginx, IIS, Apache 총 4가지 인증서 형식에 해당하는 4개의 폴더가 있습니다. 본 문서에서는 PFX 형식으로 설치를 진행하므로 IIS 폴더 내의 인증서를 사용해야 합니다. (폴더마다 파일 형식만 다를 뿐 다른 폴더의 파일을 사용해도 충돌이 발생하지 않습니다.)
- IIS 폴더에는 세 개의 파일이 포함되어 있습니다,
domain_com.pfx인증서 파일domain_com.key개인키 파일password.txt인증서 비밀번호 파일
SSL 인증서 설치
- 가져온
domain_com.pfx인증서 파일을 로컬 디렉터리에서 Tomcat 서버의/usr/tomcat9.0.13/conf디렉터리로 복사합니다. Tomcat 버전에 따라 경로 이름이 약간 다를 수 있으니 사용 중인 서비스에 해당하는 경로로 이동해 작업하시기 바랍니다. /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"/>
- 설정 파일을 저장한 후
bin디렉터리에서 아래 명령을 실행하여 설정이 올바른지 확인합니다.
./configtest.sh
- Tomcat을 재시작한 후
bin디렉터리에서 다음 명령을 실행합니다:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
SSL 인증서 테스트
브라우저 주소창에 SSL 인증서가 바인딩된 도메인을 입력하여 SSL 인증서가 정상적으로 설치되었는지 테스트하세요. 설치가 성공하면 브라우저 주소창에 보안 자물쇠 아이콘이 표시되며, 클릭 시 인증서 정보를 확인할 수 있습니다.

HTTP 자동 HTTPS 리디렉션 보안 설정(선택 사항)
HTTP 요청을 자동으로 HTTPS로 리디렉션하려면 다음 단계를 따라 설정하세요:
/usr/tomcat9.0.13/conf디렉터리에 있는web.xml파일을 편집하여</welcome-file-list>태그를 찾습니다.- 종료 태그
</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>
/usr/tomcat9.0.13/conf디렉터리 아래의server.xml파일을 편집하여redirectPort매개변수를 SSL의connector포트, 즉 443 포트로 수정합니다. 예시는 다음과 같습니다:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- 구성 파일을 저장하고
bin디렉터리에서 다음 명령을 실행하여 구성이 올바른지 확인합니다.
./configtest.sh
- 설정에 문제가 없으면 Tomcat 서버를 재시작한 후 도메인으로 접속할 수 있으며, HTTP가 자동으로 HTTPS로 리디렉션됩니다.
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器