개요
- 웹 사이트에 https 를 적용하기 위한것
- 인증서를 통한 통신을 https라고 한다.
- 인증 기관에 인증서를 요청하면,
- 인증 기관에서 사이트를 확인해보고, 인증서를 CA 의 비공개키로 암호화하여 발급해준다.
- 인증서에 포함된 내용
- 해당 인증서를 인증 해준 인증 기관 (CA)
- 서버의 공개키
- 인증서를 쓰는 이유
- 암호화를 통해서 정보 유출을 방지한다.
- 인증서를 발급해주는 기관을 통하여 웹 페이지의 실체성을 확인할 수 있다.
- 본사이트를 사칭하는 유사사이트는 인증서가 없다
- https 작동 원리 (공개키 암호화 + 대칭키 암호화)
- 사용자가 웹브라우저로 웹 사이트에 접속
- 웹 사이트에서 자신의 SSL 인증서를 사용자한테 보내준다.
- 사용자는 SSL 인증서에 적혀있는 인증기관(CA) 를 확인한다.
- 브라우저에 저장되어있는 CA 의 공개키로 SSL 인증서를 복호화한다.
- 복호화에 성공하면 제대로 된 인증서임을 확인했기 때문에 이제 서버를 신뢰한다.
- 대칭키(랜덤 값)를 서버의 공개키로 암호화하여 서버로 보내준다.
- 서버는 개인키를 통해서 대칭키(랜덤 값)를 알아낸다.
- 앞으로 대칭키를 통하여 데이터를 암호화하여 주고 받는다.
설치
apt install openssl
인증서 발급
- 용어
- 자체 서명 인증서
- 실제 인증 기관에 요청하지 않고 자기가 직접 인증 기관이 되어 서명해버리는것
- 인증서를 암호화 할 비공개키를 만든다. (인증 기관 입장)
- 비공개키로 csr를 만든다. (웹 사이트 입장)
- 비공개키와 csr로 crt를 만든다. (인증 기관 입장)
openssl req -new -key 키이름.key -out csr_이름.csr # csr 생성 툴
...
인증서 적용
/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