기본 콘텐츠로 건너뛰기

tomcat https 설정 및 http to http redirect

보통은 할일이 없는데 이걸 내가 할 줄이야..


I. 서버 인증서 설치 해서 크롬이나 ie에서 보안경고 안보이게.
II. 톰캣 : 80  ==> 443 리다이렉트

I. 서버 인증서 설치 해서 크롬이나 ie에서 보안경고 안보이게.

1. 인증서 생성


1.1. 자바 스탠다드 키스토어 포맷으로 생성 ( java standard key store : jks )
설치될 서버 도메인 확정
test.mydomain.com => 생성할 도메인으로 바꾸시면 됩니다.

"%JAVA_HOME%\bin\keytool" -genkey -alias myssl -keypass 인증서비밀번호 \
-storepass 인증서비밀번호 -keyalg RSA -sigalg SHA1withRSA \
-dname "CN=test.mydomain.com, OU=OrgUnit, O=AssetPlus, C=KR" \
-keystore %USERPROFILE%\test.mydomain.com.jks


이때 CN=test.mydomain.com 정확히 적으셔야 인증이 마무리 됩니다.

1.2. 인증서 요청파일 CSR(Certificate Signing Reuest) 파일 생성

"%JAVA_HOME%\bin\keytool" -certreq -keyalg RSA -alias myssl \
-sigalg SHA1withRSA -keystore %USERPROFILE%\test.mydomain.com.jks \
-file %USERPROFILE%\test.mydomain.com.certreq.csr



CSR 파일을 열어보면 


이렇게 생겨 있습니다. 

이제 무료 인증 싸이트 가입 해서 인증을 요청 합니다.
와우사인 업체입니다.



Request a Free SSL Certificate 를 클릭 합니다.
도메인을 적고 , 회원 가입이 안되어 있으면 가입을 합니다.
여기는 3년짜리 무료료 발급 해 줍니다. 도메인에 대한 소유권을 확인 하는 절차가 있는데,
webmaster 나 admin 등의 아이디로 이메일 인증이 되면 발급 할 수 있습니다.

발급 버튼을 누르면 csr 업로드 창이 뜹니다.

아까 만든 csr 파일의 내용을 붙여넣기 합니다.

submit 누르면 인증서 파일이 다운로드 됩니다.

압축을 풀면 아래처럼 또 압축 파일이 있습니다.
이중에서 for Other Server.zip 파일을 압축을 해제 합니다.
이제 이 인증서를 내 키스토어에 추가 합니다.

  • 순서는 root 먼저 합니다. 다른 순서로는 안해봐서 



"%JAVA_HOME%\bin\keytool" -import -alias root -trustcacerts \
-file %USERPROFILE%\root.crt -keystore %USERPROFILE%\test.mydomain.com.jks



  • 1_cross_Intermediate 인증서 추가

"%JAVA_HOME%\bin\keytool" -import -alias corss -trustcacerts \
-file %USERPROFILE%\1_cross_Intermediate.crt -keystore %USERPROFILE%\test.mydomain.com.jks



  • 2_issuer_Intermediate.crt 추가 

"%JAVA_HOME%\bin\
keytool"
-import -alias issure -trustcacerts \ -file %USERPROFILE%\2_issuer_Intermediate.crt -keystore %USERPROFILE%\test.mydomain.com.jks


  • 싸이트인증서 추가하기


"%JAVA_HOME%\bin\keytool" -import -alias myssl -trustcacerts \
-file %USERPROFILE%\3_user_test.mydomain.com.crt -keystore %USERPROFILE%\test.mydomain.com.jks


이번에는 응답 메세지가 조금 틀립니다.

인증서회신이 추가되었습니다. 라는 메세지가 떠야 합니다.

인증서를 확인 해 보겠습니다.

"%JAVA_HOME%\bin\keytool" -list -v -keystore %USERPROFILE%\test.mydomain.com.jks

아래와 같이 발행자: CN=WoSign CA Free SSL Certificate G2, O=WoSign CA Limited, C=CN 가 추가 되어 있습니다.


여기까지 해서 인증서 생성이 완료 되었습니다.
다음은 톰캣 설정입니다.

II. 톰캣 : 80  ==> 443 리다이렉트 

1. 443 https 설정

C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf
폴더에 내 키스토어 파일을 복사 합니다. test.mydomain.com.jks

server.xml 파일을 수정 합니다.
노드는 Server > Service 아래 입니다.

1.1. protocol="HTTP/1/1" 의 8080 포트를 80 으로 바꾸고, 8443 을 443 으로 바꿔 줍니다.

<Connector port="8080" protocol="HTTP/1.1"           
     connectionTimeout="20000"           
                           redirectPort="8443" />



<Connector port="80" protocol="HTTP/1.1"           
     connectionTimeout="20000"           redirectPort="443"/>


1.2. SSL 추가 해 줍니다.


<Connector    sslProtocol="TLS" clientAuth="false"    
          keyAlias="myssl"   
          keystorePass="인증서비밀번호"   
          keystoreFile="conf/test.mydomain.com.jks"    
          secure="true" scheme="https" maxThreads="150"    SSLEnabled="true"  port="443"/>   



1.3. protocol="APJ/1.3" 의 redirectPort 를 8443 에서 443 포트로 변경해 줍니다.


<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

1.4. 톰캣 서비스를 재시작 합니다.

2. 80 포트 443 로 리다이렉트 시키기


2.1. WEB.XML 을 수정 해야 적용 된다.

테스트를 위해서 C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\ROOT\WEB-INF\web.xml 파일의 web-app 노드에 security-constraint 를 추가 한다.

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


브라우저에서 확인 해 보면 http://test.mydomain.com => https://test.mydomain.com

로 리다이렉트가 된다.


댓글

이 블로그의 인기 게시물

윈도우 톰캣 네트워크 드라이버 잡기

윈도우 톰캣 네트워크 드라이버 설정(windows tomcat network driver setting) TOMCAT_HOME/conf/server.xml 의 Host 노드 아래 경로 추가     <Context path="/resources" docBase="//192.168.200.100/cifs/pds" /> 서버스 재구동 하면 다음 메시지 뜸 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/resources] java.io.IOException: 사용자 이름 또는 암호가 올바르지 않습니다 at java.io.WinNTFileSystem.canonicalize0(Native Method) at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428) at java.io.File.getCanonicalPath(File.java:618) at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:593) at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:744) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401)...

Jsp 서버 아이피 확인

한줄버전 <% String svrIP =  InetAddress.getLocalHost() .getHostAddress(); %> <%@ page language="java" import="java.net.InetAddress" %> InetAddress inet = InetAddress.getLocalHost(); String svrIP = inet.getHostAddress(); Reference http://yoontaesub.egloos.com/m/1925800

윈도우 톰캣 버전확인

cmd 창을 연 후 cd C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin version.bat 실행 ======================================================== Using CATALINA_BASE:   "C:\Program Files\Apache Software Foundation\Tomcat 8.0" Using CATALINA_HOME:   "C:\Program Files\Apache Software Foundation\Tomcat 8.0" Using CATALINA_TMPDIR: "C:\Program Files\Apache Software Foundation\Tomcat 8.0\temp" Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_91" Using CLASSPATH:       "C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin\tomcat-juli.jar" Server version: Apache Tomcat/8.0.33 Server built:   Mar 18 2016 20:31:49 UTC Server number:  8.0.33.0 OS Name:        Windows Server 2012 R2 OS Version:     6.3 Architecture:   amd64 JVM Version:    1.8.0_91-b14 JVM Vendor:     Oracle Corporation ...