728x90

1. IIS에 등록된 인증서 갱신
IIS용 인증서(pfx)파일 준비

IIS 관리자 접속
"홈 - 서버 인증서"
등록된 인증서 목록에서  만료기간이 지난 인증서 선택하여 우클릭 후 "제거"
우측 "작업" 탭 "가져오기.." 클릭
인증서 파일 첨부 및 암호 입력하여 등록

2. 사이트에 등록된 인증서 설정
IIS 관리자 접속
"홈 - 사이트"
사이트 목록에서 선택
우측 "작업" 탭  "사이트 편집 - 바인딩.." 클릭
"종류" 의 값이 HTTPS 인 것을 선택하여 "편집" 클릭
"SSL 인증서" 항목에서 등록한 인증서 선택 후 확인




728x90
728x90

SSL절에 아래의 항목추가
PassPhraseDialog="file:[패스워드 쉘 파일 절대경로]"

패스워드 쉘 파일 생성 방법

# su - webtob
# ${WEBTOB_HOME}/ssl
# wsmkppd -p [패스워드] [패스워드 쉘 파일명] [webtob에 설정한 SSLNAME]

ex) wsmkppd -p tmax pass.sh ssl1

728x90
728x90

1. HSTS (HTTP Strict Transport Security) 란?
일반적으로 HTTPS를 강제하게 될 때 서버측에서 302 Redirect 를 이용하여 전환(웹서버 설정을 통해)시켜 줄 수 있음. 하지만 이것이 취약점 포인트로 작용될 수 있다.

이러한 이유로 클라이언트 (브라우저) 에게 HTTPS를 강제 하도록 하는 것이 권장되는데, 이것이 HSTS (HTTP Strict Transport Security) 다. 클라이언트 (브라우저)에서 강제 하기 때문에 Plain Text (HTTP) 를 이용한 연결 자체가 최초부터 시도되지 않으며 클라이언트 측에서 차단된다는 장점이 있음. 

 

사용자가 최초로 사이트에 접속시도를 하게 되면 웹서버는 HSTS 설정에 대한 정보를 브라우저에게 응답하게 됨. 브라우저는 이 응답을 근거로 일정시간 (max-age) 동안 HSTS 응답을 받은 웹사이트에 대해서 https 접속을 강제화 함. (Response Header에 Strict-Transport-Security 값으로 존재)

 

 

크롬에서는 다음과 같은 명령어로 브라우저에 들어있는 HSTS값이 확인 가능

chrome://net-internals/#hsts

 

아래의 사이트에서 HSTS가 적용된 사이트인지 확인 가능

https://hstspreload.org

 

1.1. HSTS의 오점 

HSTS를 웹서버에서 리스폰스 헤더로 제공하는건 최초의 HTTP로 연결시에 HSTS 헤더가 내려오기전에 SSL 스트립이 가능한 문제가 여전히 존재. 따라서 웹페이지에 들어가지 않고도 브라우저 내장 preload를 갖추는게 가장 안전한데, 크롬 측에 조건 갖추고 제출하면 크롬 preload 리스트에 들어갈 수 있음. 크롬 리스트는 다른 브라우저도 공유함. // END

2. HSTS (HTTP Strict Transport Security) 의 설정방법
WEBTOB 설정파일(http.m)에서 다음과 같은 설정 추가
*HEADERS
HSTS ACTION="AddResponse",
FIELDNAME="Strict-Transport-Security",
FIELDVALUE="max-age=[시간ms]"
*VHOST
HEADERS="HSTS",

 

3. HSTS (HTTP Strict Transport Security) 를 이용한 SSL Strip 방어

MITM (Man in the Middle) 공격을 보안하기 위함. 일반적으로 TLS/SSL로 암호화 된 세션은 중간에서 공격자가 그 내용을 감청하더라도 암호화 되어 있기 때문에 데이터가 보호 될 수 있습니다. 따라서 MITM은 SSL Strip (SSL/TLS 로 암호화 된 세션을 강제로 암호화 하지 않은 HTTP 세션으로 유도) 을 통해 공격 

 

이러한 공격은 HSTS를 적용을 통해 SSL 연결을 강제화하여 방어 할 수 있음.

 

 

 

 

728x90
728x90

웹서비스를 운영하다 보면 SSL인증서를 접하게 된다.

개념 참고
https://yozm.wishket.com/magazine/detail/1852/

그에 필요한 사항들을 정리 해본다.

1. SSL 연결 확인
$ openssl s_client -connect [IP:PORT] -cipher "ECDHE-RSA-AES128-SHA256"

2. SSL 인증서 시작일과 만료일 확인
$ openssl s_client -connect [IP:PORT] | openssl x509 -dates
$ openssl x509 -in cerfile.cer -noout -text

● jks인증서 일 시
$ ${JAVA_HOME}/bin/keytool -list -keystore [인증서파일] -v

3. p12 인증서 정보 확인법(푸시 인증서)
$ openssl pkcs12 -in apple.p12 -out cert.pem -nodes
$ cat cert.pem | openssl x509 -noout -text

※WEBTOB를 사용시 wbssl 명령어로 대체 가능

4. SSL 인증서 브라우져 체크 무시
브라우저(internet explorer)에서 CA와 통신이 되지 않을때 브라우저는 사용자에게 경고창을 띄우게 된다.
해당 경고창을 보고 싶지 않을때 사용
"인터넷 옵션 - 고급"
[서버의 인증서 해지 확인], [인증서 주소가 일치하지 않은 경우에 경고] 체크 해지 후 브라우저 재시작

5. SSL 인증서와 키값의 쌍이 맞는지 보는법
SSL인증서 파일과 각각의 서버에서 보유하고 있는 개인키 파일의 CN(Common Name) 일치여부 확인
openssl rsa -in default.key -modulus -noout | openssl md5
openssl x509 -in default.crt -modulus -noout | openssl md5

■ apahe ssl설정과 csr
출처 : https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-csr-crt.aspx

728x90

+ Recent posts