[HTTPS] 무료 SSL 인증서 letsencrypt 명령어로 간단하게 발급받자!

2024. 11. 6. 16:00· DevOps
목차
  1. 🌏 SSL 인증서란? 
  2. 🌏 SSL 인증서의 주요 역할
  3. 🌏 Let’s Encrypt란? 
  4. 🌏 Let’s Encrypt로 인증서 발급받기
  5. ✔️ DNS 설정하기
  6. ✔️ 서버에 Certbot Nginx 플러그인 설치
  7. ✔️ Certbot 명령어로 인증서 발급
  8. ✔️ Nginx 설정 파일 수정 
반응형
반응형

 

🌏 SSL 인증서란? 

 

해당 도메인이 https로 인증을 받기 위한 인증서입니다. 

인증서를 받기 이전에 해당 도메인으로 들어가보면 아래와 같이 https로 접근이 불가함을 볼 수 있습니다. 

 

 

SSL 인증서(Secure Sockets Layer Certificate)는 웹사이트와 사용자의 브라우저 간에 주고받는 데이터를 암호화하여 안전하게 보호하는 역할을 합니다. 이를 통해 데이터가 중간에 가로채이거나 변조되는 것을 방지할 수 있습니다.

🌏 SSL 인증서의 주요 역할

  1. 데이터 암호화: 사용자와 서버 간에 주고받는 데이터를 암호화하여, 민감한 정보가 중간에서 유출되지 않도록 보호합니다. 예를 들어, 로그인 정보나 신용카드 정보 같은 데이터가 암호화됩니다.
  2. 서버 신뢰성 검증: SSL 인증서는 서버의 신원을 증명하여, 사용자가 접속한 웹사이트가 진짜임을 보장합니다. 사용자가 웹사이트에 접속하면 브라우저는 SSL 인증서를 확인하고, 신뢰할 수 있는 사이트인지 여부를 판단합니다.
  3. SEO 향상: 구글 등 검색 엔진은 SSL 인증서를 설치한 사이트를 더 신뢰하며, SEO 점수에 긍정적인 영향을 미칩니다.

🌏 Let’s Encrypt란? 

Let’s Encrypt는 무료로 SSL 인증서를 발급해주는 인증 기관으로, certbot이라는 툴을 통해 손쉽게 설치하고 갱신할 수 있습니다. 유료 인증서와 달리 유효 기간이 90일로 짧지만 자동 갱신 기능을 통해 편리하게 사용할 수 있습니다.

 

인증서를 설치한 후에는 아래와 같이 https로 접속할 수 있게 됩니다. 

 

🌏 Let’s Encrypt로 인증서 발급받기

✔️ DNS 설정하기

사용자가 어떤 형식으로 접속하든지 동일한 보안 연결이 이루어지도록 하기 위해 반드시 www를 함께 포함해야 합니다.

 

일부 사용자는 www가 포함된 주소로 접속하는 경우가 있고(습관이라던가,,) SEO 관점에서도 www가 있는 주소와 없는 주소를 서로 다른 사이트로 인식할 수 있습니다. SSL 인증서를 두 도메인 모두에 적용하면 검색 엔진이 두 주소를 동일한 사이트로 인식하도록 유도할 수 있습니다.

 

이 설정을 한 후에 DNS가 전파될 때까지 잠시 시간이 걸립니다 기다리세용

 

✔️ 서버에 Certbot Nginx 플러그인 설치

여기부터 서버로 이동합니다

 

서버에 nginx가 설치되어 있는 경우에 해당합니다. 

Ubuntu의 경우, 아래 명령어로 Certbot과 Nginx 플러그인을 설치할 수 있습니다.

 

sudo apt update
sudo apt install certbot python3-certbot-nginx

 

 

✔️ Certbot 명령어로 인증서 발급

현재 nginx 설정파일은 ssl 인증서와 관련된 내용을 포함하지 않은 상태입니다. 

 

# HTTP 요청을 HTTPS로 리다이렉트
server {
        listen 80;
        listen [::]:80;
        server_name {domain} www.{domain}; 

        return 301 https://$host$request_uri;
}

# HTTPS 설정
server {
        listen 443 ssl;  
        listen [::]:443 ssl;
        server_name {domain} www.{domain};

        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

 

아래 명령어로 인증서를 발급합니다. 

sudo systemctl stop nginx
sudo certbot certonly --standalone -d {domain} -d www.{domain}

 

인증서 발급 완료

 

✔️ Nginx 설정 파일 수정 

/etc/nginx/sites-available 에 들어있는 default 파일을 아래와 같이 수정합니다. 

 

sudo vim /etc/nginx/sites-available/default

 

(vim 모드에서 전체 삭제 - ggdg)

 

# HTTP 요청을 HTTPS로 리다이렉트
server {
        listen 80;
        listen [::]:80;
        server_name {domain} www.{domain}; 

        return 301 https://$host$request_uri;
}

# HTTPS 설정
server {
        listen 443 ssl;  
        listen [::]:443 ssl;
        server_name {domain} www.{domain};

        # SSL 인증서 설정
        ssl_certificate /etc/letsencrypt/live/{domain}/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/{domain}/privkey.pem;

        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

 

이제 ssl 인증서를 포함한 설정으로 nginx를 재실행합니다. 

 

sudo systemctl start nginx
sudo systemctl status nginx

 

 

 

이렇게 하면 https 로 들어갈 수 있게 됩니다!!!  

 

 

도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'DevOps' 카테고리의 다른 글

[Infrastructure] 재배포 및 배포 롤백: 서비스 장애 발생 시 피해를 최소화하기 위한 롤백의 중요성  (2) 2023.08.26
[Infrastructure] SPOF(Single Point of Failure)란?  (4) 2023.08.25
[Infrastructure] 무중단 배포 시 고려사항: 서비스 장애를 막기 위한 백엔드 개발자의 눈물나는 노력쿠  (2) 2023.08.12
  1. 🌏 SSL 인증서란? 
  2. 🌏 SSL 인증서의 주요 역할
  3. 🌏 Let’s Encrypt란? 
  4. 🌏 Let’s Encrypt로 인증서 발급받기
  5. ✔️ DNS 설정하기
  6. ✔️ 서버에 Certbot Nginx 플러그인 설치
  7. ✔️ Certbot 명령어로 인증서 발급
  8. ✔️ Nginx 설정 파일 수정 
'DevOps' 카테고리의 다른 글
  • [Infrastructure] 재배포 및 배포 롤백: 서비스 장애 발생 시 피해를 최소화하기 위한 롤백의 중요성
  • [Infrastructure] SPOF(Single Point of Failure)란?
  • [Infrastructure] 무중단 배포 시 고려사항: 서비스 장애를 막기 위한 백엔드 개발자의 눈물나는 노력쿠
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기
    • About. 깃짱
    • Weekly Momentum
      • 2024
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
    • 우아한테크코스5기
    • 회고+후기
    • Computer Science
      • Operating System
      • Computer Architecture
      • Network
      • Data Structure
      • Database
      • Algorithm
      • Automata
      • Data Privacy
      • Graphics
      • ETC
    • WEB
      • HTTP
      • Application
    • C, C++
    • JAVA
    • Spring
      • JPA
      • MVC
    • AI
    • MySQL
    • PostgreSQL
    • DevOps
      • AWS
      • 대규모 시스템 설계
    • frontend
      • HTML+CSS
    • NextJS
    • TEST
    • Industrial Engineering
    • Soft Skill
    • TIL
      • 2023
      • 2024
    • Linux
    • Git
    • IntelliJ
    • ETC
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • Composition
  • 우테코
  • 조합
  • lamda
  • 우아한테크코스
  • 예외
  • 우아한테크코스5기
  • TDD
  • 스트림
  • 람다
  • 상속
  • 컴포지션
  • Stream
  • 함수형프로그래밍
  • 레벨로그
  • 우테코5기
  • Java
  • 상속과조합
  • OOP
  • 람다와스트림
hELLO · Designed By 정상우.v4.2.0
깃짱
[HTTPS] 무료 SSL 인증서 letsencrypt 명령어로 간단하게 발급받자!
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.