-
[Linux]HTTPS 적용 / Let's EncryptServer 2021. 9. 22. 15:28
HTTP
HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. 하지만 HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이였기 때문에 보안상 취약한 점이 있어 HTTPS 가 등장하게 되었다.
HTTPS
HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.
1. certbot 설치
$ sudo apt update $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt update $ sudo apt install python-certbot-nginx
Certbot는 최신 버전의 Ubuntu 소프트웨어 저장소를 유지하므로 가장 먼저 업데이트를 진행한다.
다음으로 저장소를 추가한다.
다시 업데이트를 하고 Certbot의 Nginx 패키지를 설치한다.
2. Nginx 설정
$ sudo vi /etc/nginx/sites-available/default
nginx 설정파일을 열어 기존의 server_name 부분을 지우고 인증서를 적용할 도메인 이름을 새로 작성한다.
$ sudo nginx -t $ sudo systemctl reload nginx
변경된 설정이 잘 적용되는지 테스트 하고, 변경된 설정 파일을 적용하기 위해 nginx를 다시 로드한다.
3. SSL 인증서 받기
$ sudo certbot --nginx -d musicstar.shop -d www.musicstar.shop
nginx 플러그인을 통해 원하는 도메인을 지정하고 SSL 인증서를 획득할 수 있다.
두 개 이상의 도메인에 대해 인증서를 발급받고자 한다면 -d 옵션을 추가로 작성하면 된다.
인증서 설치를 진행하다 보면 기존 HTTP 연결을 어떻게 설정할 것인지에 대한 질문이 나타난다.
필자는 모든 HTTP 연결을 HTTPS로 리다이텍트 하는 설정을 선택했다.
https://www.ssllabs.com/ssltest/에 접속하면 서버를 테스트할 수 있다.
테스트하고자 하는 도메인을 입력했더니 위와 같은 오류가 발생했다.
HTTPS 유형을 선택해 인바운드 규칙을 추가해주었다.
인바운드 규칙 수정 후 앞전의 단계를 다시 진행하면 등급을 확인할 수 있다.
'Server' 카테고리의 다른 글
[Linux] WinSCP 파일 전송 시 권한 오류 해결 (0) 2021.09.24 [Linux]Subdomain, Redirection 적용 (0) 2021.09.22 [Linux] Domain 적용 (0) 2021.09.22 [Linux]phpMyAdmin 설치 (0) 2021.09.22 [Linux]MySQL 외부 접속 / MySQL workbench (0) 2021.09.22