Tomcat 서버에 SSL 인증서 설치(JKS 형식)
Tomcat 서버에 SSL 인증서를 설치하면 Tomcat 서버에서 HTTPS 보안 접속을 지원할 수 있습니다. 본 문서에서는 Tomcat 서버에 SSL 인증서를 설치하는 방법을 설명합니다.
본 문서에서는 Tomcat 버전 tomcat9.0.13을 예시로 설명합니다. 설치 전 443 포트가 사용 중이 아닌지 확인하시기 바랍니다. 443 포트가 이미 사용 중인 경우 인증서 설치 시 다른 포트를 바인딩해 주세요.
인증서 획득
-
인증서 발급이 완료되면 압축(.zip) 형식의 인증서 파일이 발급되며, 압축 파일 안에는 Tomcat, Nginx, IIS, Apache 네 가지 인증서 형식에 각각 대응하는 4개의 폴더가 있습니다. 본 문서에서는 JKS 형식을 사용해 설치를 진행하므로 Tomcat 폴더 내의 인증서를 사용합니다.
-
Tomcat 폴더에는 세 개의 파일이 포함되어 있습니다.
domain_com.jks인증서 파일domain_com.key개인키 파일password.txt인증서 비밀번호 파일
SSL 인증서 설치
- 획득한
domain_com.jks인증서 파일을 로컬 디렉터리에서 Tomcat 서버의/usr/tomcat9.0.13/conf디렉터리로 복사합니다.
- Tomcat 버전에 따라 경로 이름이 약간 다를 수 있으니, 사용하시는 서비스에 해당하는 경로로 이동해 작업해 주세요.
- 사용자의 JDK 버전이 저희가 JKS 파일을 변환한 환경의 JDK 버전과 다른 경우, 현재 사용 중인 환경에서 JKS 파일을 수동으로 변환해야 할 수 있습니다.
아래 명령어를 참고하여 JKS 파일을 변환해 주세요. 해당 파라미터는 적절히 교체하여 사용하시기 바랍니다:
keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -srcstorepass pfxpassword -destkeystore domain.jks -deststoretype jks -deststorepass pfxpassword
domain.pfx(IIS 폴더 내 pfx 파일), pfxpassword(pfx 파일 비밀번호), domain.jks(변환 후 jks 파일 이름), pfxpassword(PFX 파일 비밀번호)을 교체해 주세요.
/usr/tomcat9.0.13/conf디렉터리의server.xml파일을 편집합니다.server.xml파일에 Connector 속성을 다음과 같이 추가합니다:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 인증서 경로 -->
keystorePass="인증서 비밀번호" <! -- password.txt 비밀번호 파일의 내용으로 교체해 주세요 -->
clientAuth="false"/>
- 구성 파일을 저장한 후 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 服务器