Apache Tomcat 서버에서 올바른 방법으로 HTTPS 또는 SSL을 활성화하기 위한 단계별 가이드 – 포트 8443
게시 됨: 2021-04-03Apache Tomcat을 사용하기 시작한 지 거의 12년이 되었습니다. 저는 1학년 프로젝트를 수행했을 때 Tomcat 버전 1.x
에 있었다고 믿습니다. 이제 이미 버전 8.0
에 있습니다. 저는 주로 일상 업무에서 Tomcat 서버와 연락을 했고, 단순히 그것 없이는 살 수 없습니다.
Crunchify에서 우리는 이미 Apache Tomcat
에 대한 거의 40개의 기사를 게시했습니다. 대부분의 튜토리얼에서는 server.xml
파일에 구성된 기본 포트인 포트 8080에서 서버를 실행했습니다.
이 튜토리얼에서는 how to enable HTTPS/SSL on Apache Tomcat Server
에 대한 모든 단계를 자세히 살펴보겠습니다.
시작하자:
1 단계. 키 저장소 생성
keytool
: 키 및 인증서 관리 도구인 keytool
명령을 사용하여 보안 키를 생성합니다.
명령:
1 2 3 4 |
bash - 3.2 $ pwd / Users / Shared bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore |
/Users/Shared
폴더 아래에 파일이 생성됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore Enter keystore password : Re - enter new password : What is your first and last name ? [ Unknown ] : App Shah What is the name of your organizational unit ? [ Unknown ] : Crunchify , LLC What is the name of your organization ? [ Unknown ] : Crunchify What is the name of your City or Locality ? [ Unknown ] : New York City What is the name of your State or Province ? [ Unknown ] : NY What is the two - letter country code for this unit ? [ Unknown ] : US Is CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US correct ? [ no ] : yes Generating 2 , 048 bit RSA key pair and self - signed certificate ( SHA256withRSA ) with a validity of 90 days for : CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US |
나는 Mac OS X을 사용하고 있으므로 Windows를 사용하는 경우 그에 따라 경로를 바꾸십시오. 비밀번호 123456
을 사용했습니다.
2 단계. 자체 서명된 인증서 서명 요청 생성
1 2 |
bash - 3.2 $ keytool - certreq - keyalg RSA - alias crunchify - file crunchify . csr - keystore crunchify . keystore Enter keystore password : |
비밀번호 입력: 123456
3단계. 먼저 톰캣이 HTTP를 통해 포트 8080에서 실행 중인지 확인합시다.
<tomcat_home>/bin/ startup.sh
명령을 사용하여 tomcat 서버를 Start
합니다.
올바른 바람둥이 경로 위치에 있는지 확인하십시오.
1 2 3 4 5 6 7 8 9 10 11 |
bash - 3.2 # pwd / Users / Shared / apache - tomcat - 9.0.30 / bin bash - 3.2 $ . / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
URL: http://localhost:8080
을 눌러 서버가 실행 중인지 확인하십시오.
4단계. 이제 HTTPS를 통해 포트 8443에서 tomcat 인스턴스를 확인하십시오.
- 이제 포트 8443(HTTPS/SSL URL)을 확인하십시오.
- 조회 URL:
https://localhost:8443
- 오류 메시지가 표시되어야 합니다. 페이지가 전혀 로드되지 않아야 합니다.
5단계. /conf/server.xml 파일 업데이트
위에서 키 저장소 및 인증서 서명 요청을 생성했으므로 이를 사용하도록 tomcat에 알려야 합니다.
-
<tomcat_home>/conf/
폴더에 있는server.xml
파일을 열고 설정을 수정합니다. - 우리의 경우
/Users/Shared/apache-tomcat-9.0.30/conf
폴더입니다.
server.xml 파일에 직접 아래 섹션을 추가합니다.

1 2 3 4 5 |
< Connector port = "8443" protocol = "HTTP/1.1" SSLEnabled = "true" maxThreads = "150" scheme = "https" secure = "true" keystoreFile = "/Users/Shared/crunchify.keystore" keystorePass = "123456" clientAuth = "false" sslProtocol = "TLS" sslVerifyClient = "optional" sslEnabledProtocols = "TLSv1.2,TLSv1.1,SSLv2Hello" / > |
- 여기서 비밀번호는
123456
Step-1
에서 사용했습니다. - 프로토콜: HTTP/1.1
파일을 저장. 다음으로 Tomcat 서버를 중지하고 시작합니다.
6단계. Apache Tomcat을 중지하고 시작합니다.
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / shutdown . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar NOTE : Picked up JDK_JAVA_OPTIONS : -- add - opens = java . base / java . lang = ALL - UNNAMED -- add - opens = java . base / java . io = ALL - UNNAMED -- add - opens = java . rmi / sun . rmi . transport = ALL - UNNAMED bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
7단계. HTTPS URL 및 인증 확인: https://localhost:8443
이제 HTTPS 보안 URL을 다시 눌러 페이지가 성공적으로 로드되었는지 확인합니다.
크롬:
- 기본적으로
Chrome Blocks all insecure HTTPS
. - localhost에서 로드된 리소스에 대해 잘못된 인증서를 로드하려면
Chrome flag
를 사용 설정하세요.
- 크롬으로 이동
- 탭 열기
- 유형:
chrome://flags/#allow-insecure-localhost
- 드롭다운에서 플래그 활성화
- Chrome 다시 실행
사파리 및 모질라 파이어폭스:
-
Accept invalid certificate error
하고 사이트를 방문하십시오.
포트 8443에서 HTTPS를 통해 로드되는 Apache Tomcat 페이지가 표시되어야 합니다.
당신 준비 다 됐어요. red padlock
가 보이시나요? 걱정하지 마세요. Verisign이나 Comodo에서 SSL 인증서를 구매하지 않았습니다.
프로덕션 환경에서는 해당 적십자 기호가 표시되지 않을 수 있습니다.
브라우저에서 인증서를 클릭하면 기본 자체 서명 인증서가
valid for 90
해야 합니다.
보너스 포인트:
keytool
명령을 사용하여 cert content
을 확인하는 방법은 무엇입니까?
1 |
bash - 3.2 # keytool -list -keystore /Users/<username>/crunchify.keystore |
결과:
1 2 3 4 5 6 7 8 9 10 11 12 |
bash - 3.2 $ keytool - list - keystore / Users / Shared / crunchify . keystore Enter keystore password : Keystore type : PKCS12 Keystore provider : SUN Your keystore contains 1 entry crunchify , Apr 24 , 2020 , PrivateKeyEntry , Certificate fingerprint ( SHA - 256 ) : 9D : 26 : 77 : E0 : E8 : 79 : 5B : 46 : 57 : 64 : 04 : 95 : B8 : 22 : 9C : E2 : 9F : A4 : 82 : CB : 01 : B5 : 80 : 62 : 75 : 90 : 48 : 27 : 5F : 60 : CB : C8 bash - 3.2 $ |