SSL은 네트워크에서 메시지 전송 시 보안을 위해 개봘된 표준 프로토콜이다. 즉, HTTP만을 위한 프로토콜이 아닌 응용계층의 여러 프로토콜의 보안을 위해 발명된 프로토콜이다. TCP를 보호하는 프로트콜이다.
클라이언트 또는 서버에서 메시지를 만들어 상대에게 전달할 때, 응용계층에서 만들어진 메시지가 전송계층으로 가기전 SSL을 통해 데이터가 암호화된다. 그 후 전송계층을 통해 네트워크로 데이터가 상대에게 전달이 된다.
SSL 장점
1. 기밀성(암호화)
2. 데이터 무결성
3. 서버인증
sudo apt update
sudo apt-get install letsencrypt -y
위의 명령어를 순서대로 입력하여 letsencrypt를 설치한다.
Let’s Encrypt SSL 인증서 발급은 매우 다양한 방법으로 이루어 진다.
이 중에는 Nginx나 아파치와 같은 웨서버가 전적으로 인증서를 제어토록 하는 방법이 있다.
이 경우 인증서 관리는 웹서버가 세팅과 관리를 알아서 한다.
이 방법을 사용하려면 웹서버에 맞는 Certbot을 추가 설치해야 한다.
우선 우분투에서 Nginx용 Certbot 설치는 아래 명령을 사용한다.
sudo apt update
sudo apt upgrade -y
sudo apt install certbot python3-certbot-nginx
sudo vi /etc/nginx/sites-available/default
위 명령어를 입력하여 아래 사진과 같이 servername : {domain} 의 형식으로 수정한다.
sudo certbot --nginx -d {domain}
처음에는 Cert bot을 이용하여 인증서를 발급받으려고 위의 명령어를 입력했지만 오류가 발생했다.
결국 아래 코드를 입력하여 Standalone 방식으로 인증서를 발급받았다.
sudo letsencrypt certonly --standalone -d {domain}
이렇게 나왔다면 인증서 발급이 완료된 것이다.
sudo vi /etc/nginx/sites-available/default
위 명령어로 설정파일 편집기에 들어가서 아래 사진과 같이 인증서를 추가하면 된다.
여기까지 완료 되었다면 이제 https로 접속이 가능해진 것이다.
아래 사진처럼 nginx 설정파일을 수정하여 http 로 접속을 했을 경우 https로 redirect 해주도록 한다.
- https://happist.com/573990/%EC%B5%9C%EC%8B%A0-lets-encrypt-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%B0%9C%EA%B8%89-%EB%B0%A9%EB%B2%95-3%EA%B0%80%EC%A7%80-%EC%A0%95%EB%A6%AC
- https://lelana.tistory.com/102
- https://velog.io/@pinot/Ubuntu-Nginx-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-CertBot%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-https-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0