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

로 리다이렉트가 된다.


댓글