Search
Duplicate
🌊

Https 및 SSL 개념

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Web
https
Scrap
태그
HTTP
9 more properties

개요

웹 사이트에 https 를 적용하기 위한것
인증서를 통한 통신을 https라고 한다.
인증 기관에 인증서를 요청하면,
인증 기관에서 사이트를 확인해보고, 인증서를 CA 의 비공개키로 암호화하여 발급해준다.
인증서에 포함된 내용
해당 인증서를 인증 해준 인증 기관 (CA)
서버의 공개키
인증서를 쓰는 이유
암호화를 통해서 정보 유출을 방지한다.
인증서를 발급해주는 기관을 통하여 웹 페이지의 실체성을 확인할 수 있다.
본사이트를 사칭하는 유사사이트는 인증서가 없다
https 작동 원리 (공개키 암호화 + 대칭키 암호화)
사용자가 웹브라우저로 웹 사이트에 접속
웹 사이트에서 자신의 SSL 인증서를 사용자한테 보내준다.
사용자는 SSL 인증서에 적혀있는 인증기관(CA) 를 확인한다.
브라우저에 저장되어있는 CA 의 공개키로 SSL 인증서를 복호화한다.
복호화에 성공하면 제대로 된 인증서임을 확인했기 때문에 이제 서버를 신뢰한다.
대칭키(랜덤 값)를 서버의 공개키로 암호화하여 서버로 보내준다.
서버는 개인키를 통해서 대칭키(랜덤 값)를 알아낸다.
앞으로 대칭키를 통하여 데이터를 암호화하여 주고 받는다.

설치

apt install openssl
Bash
복사
/etc/ssl 폴더가 생겼는지 확인

인증서 발급

용어
csr : 인증 요청서
crt : 인증서
자체 서명 인증서
실제 인증 기관에 요청하지 않고 자기가 직접 인증 기관이 되어 서명해버리는것
인증서를 암호화 할 비공개키를 만든다. (인증 기관 입장)
비공개키로 csr를 만든다. (웹 사이트 입장)
비공개키와 csr로 crt를 만든다. (인증 기관 입장)
openssl req -new -key 키이름.key -out csr_이름.csr # csr 생성 툴 ...
Bash
복사

인증서 적용

/etc/ssl 폴더에 인증서파일을 넣어줘야한다.
파일 권한을 600으로 줘야한다.
mv localhost.dev.key etc/ssl/private/ mv localhost.dev.crt etc/ssl/certs/ chmod 600 etc/ssl/certs/localhost.dev.crt etc/ssl/private/localhost.dev.key
Bash
복사
이제 웹서버에서 쓰면된다 !