Linux 서버에서 Let's Encrypt(무료 인증서)를 발급하기
본 매뉴얼은 Let’s Encrypt Free SSL/TLS 무료인증서 동작 및 설치경로를 설명합니다.
가이드 안내
- iwinv 가상서버는 웹에서 콘솔 서비스를 제공하기 때문에 웹 계정을 도용당하게 될 경우 가상서버 보안에 취약할 수 있습니다.
- 리눅스 서버시 GRUB Password를 설정하면 GRUB 진입 시 패스워드가 필요하기 때문에 가상서버 도용을 방지할 수 있습니다.
- 해당 내용은 가상서버 뿐만 아니라 물리서버에서도 적용 가능한 방법입니다.
✅ 테스트 환경 : Rocky OS 8, Ubuntu 22.04 LTS
✅ 난이도 : 초급
주의 사항
- 리부팅 작업이 동반될 수 있으므로 서버가 정상적으로 올라오지 않는 경우가 발생할 수 있으니 유의해야 합니다.
- 작업 전 가상서버 이미지 생성 백업을 권장드립니다.
- 반드시 서버를 사용하지 않거나 접속자가 없는 시간을 선택해서 해당 작업을 진행합니다.
- 리부팅 과정에서 서버가 정상적으로 부팅되지 않을수도 있습니다.
Let’s Encrypt란?
Let’s Encrypt는 Mozilla, Cisco, Akamai, EFF 등이 설립한 비영리 기관인 ISRG(Internet Security Research Group)를 통해 무료로 SSL/TLS 인증서를 제공하는 글로벌 인증기관(CA)입니다.
현재는 Meta(구 Facebook), Automattic(WordPress), Shopify, Google Chrome 등 세계적인 IT 기업들이 스폰서로 참여하고 있으며, 인터넷 환경을 더 안전하게 만들기 위해 전 세계 수억 개의 웹사이트가 Let's Encrypt를 활용하여 HTTPS 보안 통신을 구현하고 있습니다.
※ '온라인 기술지원' 서비스를 통해 iwinv에서 Let's Encrypt 인증서 발급 시 자동갱신 프로세스가 제공됩니다.
[기술지원 요청에 따른 작업비용 별도]
SSL/TLS 동작과정
SSL/TLS(Secure Socket Layer / Transport Layer Security)는 웹사이트의 전송 데이터를 ‘HTTPS 프로토콜’ 을 활용하여 암호화 통신하는 기술입니다. 웹사이트 전체나 개인정보 등의 데이터를 암호화하여 중간에 누군가 훔쳐보거나 위변조할 수 없도록 안전하게 전송합니다.
자세한 동작 과정은 아래와 같습니다.
-
웹 브라우저에서 https://도메인을 입력하여 서버에 보안 연결을 요청합니다.
-
웹 서버에서 자신의 공개키(Public Key)가 포함된 SSL/TLS 인증서를 전송합니다.
-
웹 브라우저에서 자 신이 신뢰하는 인증기관(Root CA) 목록을 확인하여 서버가 보낸 인증서가 진짜인지 검증합니다.
-
웹 브라우저와 웹 서버가 안전한 알고리즘으로 패킷을 교환하며 실제 데이터를 암호화할 대칭키(Session Key)를 실시간으로 합의하여 생성합니다.
-
암호화 키 생성이 완료되면 웹 브라우저와 웹 서버는 앞으로 이 키를 사용해 통신하겠다는 신호를 주고받으며 핸드셰이크를 완료합니다.
-
웹 브라우저에서 사용자가 요청한 URL과 HTTP 데이터를 앞서 합의된 대칭키로 암호화하여 전송합니다.
-
웹 서버에서 대칭키로 데이터를 복호화해 확인한 뒤 응답 데이터를 다시 대칭키로 암호화하여 전송하면, 웹 브라우저가 이를 복호화하여 화면에 표시합니다.
Let's Encrypt - 무료 SSL 설치 방법 [ Linux ] (Rocky OS 8~ ,Ubuntu 22.04 LTS ~)
※ Let's Encrypt 인증서를 발급 및 관리하기 위해서는 공식 클라이언트인 Certbot 패키지 설치가 필요하며, 최신 환경 시스템에서는 Python 3 기반의 구동 환경을 자동으로 구성합니다.