HTTPS(SSL) 적용방법 (Step by Step)

CODEDRAGON Security/SecureCoding

반응형



 

 

HTTPS(SSL) 적용방법 (Step by Step)

·         keytool 도구 확인하기

·         keystore(인증서 지문) 생성

·         설정 - https 접속하기

·         SSL 설정하기

·         SSL 설정 적용 확인하기

·         설정 - https 접속하기

 

 

 

 

keytool 도구 확인하기

·         JDK 설치후 시스템 환경변경변수를 등록한 경우

·         JDK 설치후 시스템 환경변경변수를 등록하지 않은 경우

 

 

 

JDK 설치후 시스템 환경변경변수를 등록한 경우

JDK 설치후 시스템 환경변경변수를 등록한 경우 바로 사용할 있습니다.

https://codedragon.tistory.com/4590

C:\CodeLab>keytool

인증서 관리

 

명령:

 

 -certreq            인증서 요청을 생성합니다.

 -changealias        항목의 별칭을 변경합니다.

 -delete             항목을 삭제합니다.

 -exportcert         인증서를 익스포트합니다.

 -genkeypair         쌍을 생성합니다.

 -genseckey          보안 키를 생성합니다.

 -gencert            인증서 요청에서 인증서를 생성합니다.

 -importcert         인증서 또는 인증서 체인을 임포트합니다.

 -importpass         비밀번호를 임포트합니다.

 -importkeystore     다른 저장소에서 하나 또는 모든 항목을 임포트합니다.

 -keypasswd          항목의 비밀번호를 변경합니다.

 -list               저장소의 항목을 나열합니다.

 -printcert          인증서의 콘텐츠를 인쇄합니다.

 -printcertreq       인증서 요청의 콘텐츠를 인쇄합니다.

 -printcrl           CRL 파일의 콘텐츠를 인쇄합니다.

 -storepasswd        저장소의 저장소 비밀번호를 변경합니다.

 

command_name 사용법에 "keytool -command_name -help" 사용

 

C:\CodeLab>

 

 

 

 

JDK 설치후 시스템 환경변경변수를 등록하지 않은 경우

keytool 도구가 있는 경로인 JDK 설치 경로의 bin폴더에서 확인할 있습니다.

C:\CodeLab>cd %JAVA_HOME%\bin

 

C:\Program Files\Java\jdk1.8.0_65\bin>dir key*

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: CEC6-6B66

 

 C:\Program Files\Java\jdk1.8.0_65\bin 디렉터리

 

2015-10-21  오후 10:58            15,936 keytool.exe

               1 파일              15,936 바이트

               0 디렉터리  286,258,311,168 바이트 남음

 

C:\Program Files\Java\jdk1.8.0_65\bin>cd C:\Program Files\Java\jdk1.8.0_65\bin

 

C:\Program Files\Java\jdk1.8.0_65\bin>dir key*

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: CEC6-6B66

 

 C:\Program Files\Java\jdk1.8.0_65\bin 디렉터리

 

2015-10-21  오후 10:58            15,936 keytool.exe

               1 파일              15,936 바이트

               0 디렉터리  286,253,367,296 바이트 남음

 

C:\Program Files\Java\jdk1.8.0_65\bin>

 

 

C:\Program Files\Java\jdk1.8.0_65\bin


 

 

 

 

 

 

keystore(인증서 지문) 생성

 

자바의 keytool 이용하여 인증서 지문 생성을 위한 명령어를 입력후 엔터를 클릭합니다.

keytool -genkey -alias tomcatssl -keyalg RSA -validity 36500 -keystore tomcat.keystore

 

C:\CodeLab>keytool -genkey -alias tomcatssl -keyalg RSA -validity 36500 -keystore tomcat.keystore

저장소 비밀번호 입력: ************

비밀번호 다시 입력: ************

이름과 성을 입력하십시오.

  [Unknown]:  codedragon

조직 단위 이름을 입력하십시오.

  [Unknown]:  codedragon

조직 이름을 입력하십시오.

  [Unknown]:  codedragon

// 이름을 입력하십시오?

  [Unknown]:  seoul

/ 이름을 입력하십시오.

  [Unknown]:  seoul

조직의 자리 국가 코드를 입력하십시오.

  [Unknown]:  kr

CN=codedragon, OU=codedragon, O=codedragon, L=seoul, ST=seoul, C=kr() 맞습니까?

  [아니오]:  y

 

<tomcatssl> 대한 비밀번호를 입력하십시오.

        ( 저장소 비밀번호와 동일한 경우 Enter 키를 누름): [Enter]입력

 

C:\CodeLab>

 

 

생성된 key파일을 확인합니다.

C:\CodeLab>dir *.keystore

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: CEC6-6B66

 

 C:\CodeLab 디렉터리

 

2019-02-02  오전 10:47             2,250 tomcat.keystore

               1 파일               2,250 바이트

               0 디렉터리  286,193,790,976 바이트 남음

 

C:\CodeLab>

 

 

 

 

 

설정 - https 접속하기

·         http 접속

·         https 접속

·         server.xml 파일 확인

 

 

http 접속

http://localhost:8080/HelloWorldSSL/Welcome.html


 

 

https 접속

https://localhost:8443/HelloWorldSSL/Welcome.html


 

 

server.xml 파일 확인

server.xml 파일의 설정 정보 확인


 

 

 

 

 

 

SSL 설정하기

server.xml 파일을 오픈합니다.

/Servers/Tomcat v7.0 Server at localhost-config/server.xml


 

하단의 [Source] 탭을 클릭합니다.


 

 

78 라인에 위치한 <Connector>태그의 주석을 해제합니다.

수정

<!--

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

    -->

 


 

수정

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

 

 


 

 

 

keystoreFile 옵션과 keystorePass 옵션을 추가합니다. >>

변경된 내용을 저장합니다.

port옵션에 8443번으로 포트가 설정되어 있으므로 8443 접속합니다.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" keystoreFile="C:\CodeLab\tomcat.keystore" keystorePass="tomcatssl"/>

 

 

 

 

 

SSL 설정 적용 확인하기

eclipse에서 [Server] 아이콘을 클릭하여 Server 탭을 오픈합니다. >>

[Tomcat vx.x Server at localhost] 항목을 더블클릭합니다.


 

"Ports"항목의 SSL항목에 8443이라고 설정된 것을 확인할 있습니다.


 

 

 

 

 

 

설정 - https 접속하기

eclipse 상의 브라우저에서 https 경로로 오픈할 경우 보안 경고 창이 뜨면 [] 버튼을 클릭합니다.

 

https 8443포트로 접속합니다.

https://localhost:8443/HelloWorldSSL/Welcome.html