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

SSL 인증서(Secure Sockets Layer Certificate)는 웹사이트와 사용자의 브라우저 간에 주고받는 데이터를 암호화하여 안전하게 보호하는 역할을 합니다. 이를 통해 데이터가 중간에 가로채이거나 변조되는 것을 방지할 수 있습니다.
🌏 SSL 인증서의 주요 역할
- 데이터 암호화: 사용자와 서버 간에 주고받는 데이터를 암호화하여, 민감한 정보가 중간에서 유출되지 않도록 보호합니다. 예를 들어, 로그인 정보나 신용카드 정보 같은 데이터가 암호화됩니다.
- 서버 신뢰성 검증: SSL 인증서는 서버의 신원을 증명하여, 사용자가 접속한 웹사이트가 진짜임을 보장합니다. 사용자가 웹사이트에 접속하면 브라우저는 SSL 인증서를 확인하고, 신뢰할 수 있는 사이트인지 여부를 판단합니다.
- 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 |
🌏 SSL 인증서란?
해당 도메인이 https로 인증을 받기 위한 인증서입니다.
인증서를 받기 이전에 해당 도메인으로 들어가보면 아래와 같이 https로 접근이 불가함을 볼 수 있습니다.

SSL 인증서(Secure Sockets Layer Certificate)는 웹사이트와 사용자의 브라우저 간에 주고받는 데이터를 암호화하여 안전하게 보호하는 역할을 합니다. 이를 통해 데이터가 중간에 가로채이거나 변조되는 것을 방지할 수 있습니다.
🌏 SSL 인증서의 주요 역할
- 데이터 암호화: 사용자와 서버 간에 주고받는 데이터를 암호화하여, 민감한 정보가 중간에서 유출되지 않도록 보호합니다. 예를 들어, 로그인 정보나 신용카드 정보 같은 데이터가 암호화됩니다.
- 서버 신뢰성 검증: SSL 인증서는 서버의 신원을 증명하여, 사용자가 접속한 웹사이트가 진짜임을 보장합니다. 사용자가 웹사이트에 접속하면 브라우저는 SSL 인증서를 확인하고, 신뢰할 수 있는 사이트인지 여부를 판단합니다.
- 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 |