개요
•
웹 사이트에 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
복사
•
이제 웹서버에서 쓰면된다 !