HTTPS

0307·2022년 5월 1일
0

HTTPS?

  • HTTP protocol의 암호화된 버전
  • 클라이언트와 서버간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL이나 TLS을 사용

대칭키 암호화, 비대칭키 암호화

대칭키 암호화비대칭키 암호화
클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
키가 노출되면 매우 위험하지만 연산 속도가 빠름키가 노출되어도 비교적 안전하지만 연산 속도가 느림

HTTPS의 동작과정

  • 대칭키 암호화와 비대칭키 암호화를 모두 사용
  • 서버와 클라이언트 간에 세션키를 교환, 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키
    • 빠른 연산속도가 필요하므로 세션키는 대칭키
  • 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용

Local환경에서 간단한 HTTPS 적용

  • self-signed 인증서 사용
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000
  • 입력시 비밀번호 6자리 설정과 다른 설정값 적용
  • 마지막에 y를 눌러 생성하면 keystore.p12가 생성
  • Tomcat의 server.xml에서 아래 코드를 추가
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="패스워드" keystoreFile="파일경로"/>
  • 이후 localhost:8443으로 접속하면 Bad Request
  • localhost:8443앞에 https:// 써주자

0개의 댓글