본문 바로가기
IT/리눅스

let's encrypt 인증서 발급 및 적용

by IT 과학정복 2024. 1. 21.
반응형

리눅스 서버로 웹서비스를 할 때, 보안인증서를 적용해야 할 때가 있습니다. 

목적마다 다르겠지만 평문인 HTTP 통신이 아닌 HTTPS로 

보안 강화와 사용자의 신뢰도를 높일 수 있습니다.

반응형

 

구체적으로 인증서는

 

암호화

인증서는 데이터를 암호화하여 전송합니다.

이렇게 하면 공격자가 데이터를 중간에 가로채도 해독하기 어렵습니다.

 

인증

인증서는 클라이언트가 웹사이트의 소유자와 통신하고 있는지 확인합니다.

이렇게 하면 클라이언트가 피싱 공격의 피해자가 되는 것을 방지할 수 있습니다.

 

인증서는 웹사이트의 보안을 강화하고 사용자의 신뢰를 확보하는 효과적인 방법입니다.

따라서 웹사이트를 운영하는 경우 인증서를 발급하고 사용하는 것이 좋습니다.

 

Let's Encrypt는 누구나 무료로 사용할 수 있는 TLS 인증서를 발급해 주는 비영리 단체입니다.

Let's Encrypt 인증서의 특징은

  • 무료: Let's Encrypt 인증서는 누구나 무료로 발급받을 수 있습니다.
  • 자동화: Let's Encrypt 인증서를 발급하는 과정은 자동화되어 있어 쉽게 진행할 수 있습니다.
  • 단기 유효기간: Let's Encrypt 인증서의 유효기간은 90일입니다.

 

저는 실무에서 개발 전용 웹서버에 인증서를 입히려고 

let's encrypt를 nginx형태로 적용하였습니다.

 

let's encrypt 인증서를 적용하면서 한 번에 적용하기가 힘들었고, 

제가 실제로 적용한 사례를 공유하고 싶어서 방법을 공유합니다.

 

 

준비사항

 

리눅스 서버(공인 IP 포함)

- 설치 OS : Ubuntu 20.04

도메인

- 회사 또는 개인이 소유하고 있는 도메인

Nginx 또는 Apache 웹 서버

- 해당 설명은 Nginx 기준

 

1. 최신 버전의 nginx 설치

  • sudo apt update

  • sudo apt install nginx

Y 를 누른다.

 

 

nginx를 설치한 후

service nginx status

명령어를 입력하면 서비스가 실행되고 있음을 확인할 수 있습니다.

 

 

 

 

2. Certbot 설치

 

  • Let's Encrypt 인증서를 설치하고 자동으로 갱신시켜 주는 certbot과 python3-certbot-apache 설치
  • sudo apt install certbot python3-certbot-apache

Y를 누른다.

 

 

 

 

3-1. nginx 플러그인 설치

nginx 플러그인이 설치 안되면 해당 메시지가 출력된다.

  • sudo apt install python3-certbot-nginx

 

 

3-2. 인증서 발급

  • sudo certbot certonly --nginx -d example.com
  • example.com는 각자의 도메인을 써주면 된다.(나의 도메인은 https://imseng.kr 이다.)
  • Enter email address에 본인 이메일을 써주면 된다.

Y를 눌러준다.

 

4. 인증서 발급 완료 메시지

------------------------------------------------------------------------------------------------------------------------------------------------------------

Certbot 0.82.0 IMPORTANT NOTES:

- Congratulations! Your certificate and chain have been saved at:

/etc/letsencrypt/live/example.com/fullchain.pem

/etc/letsencrypt/live/example.com/privkey.pem

You should deploy your certificates to a web server using certbot-auto.

- If you have not already set up a web server, you can easily do so with certbot-auto.

You now have two files which you can use to configure your web server:

 

/etc/letsencrypt/live/example.com/fullchain.pem

/etc/letsencrypt/live/example.com/privkey.pem

 

To use Let's Encrypt with Apache, please see the Apache documentation at: https://certbot.eff.org/docs/apache

To use Let's Encrypt with Nginx, please see the Nginx documentation at: https://certbot.eff.org/docs/nginx

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

5. nginx 인증서 설정

/etc/nginx

해당 위치에

site-available

해당 폴더에 들어간다.

vi default   

또는

nano default

해당 명령어로 아래와 같이 

 

default 파일은 본인 사정에 맞게 설정을 하면 된다.

 

 

 

 

6. 사이트(https://imseng.kr) 접속 및 확인

 

이제 'imseng.kr' 도메인에 대한 Let's Encrypt 인증서가 발급되고 설치되었습니다.

이 가이드는 일반적인 경우를 기준으로 작성한 것이며,

구체적인 설정은 사용하는 서버와 웹 서버, 그리고 도메인 등의

환경에 따라 조금씩 달라질 수 있습니다.

 

더 자세한 정보는 Certbot의 공식 문서를 참고하시기 바랍니다.

 

 

반응형