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
'Security > SecureCoding' 카테고리의 다른 글
OWASP Top 10 - 2017 (한글) (0) | 2019.04.18 |
---|---|
Bug Hunting Methodology (0) | 2019.04.10 |
보안 개발생명 주기(Secure SDLC) (0) | 2019.03.26 |
Category:OWASP Enterprise Security API - download(다운로드) (0) | 2019.03.25 |
OWASP Korea Chapter (OWASP 코리아챕터) (0) | 2019.03.17 |