728x90
이전에 포스팅한 AWS Lightsail (1), AWS Lightsail (2) 에 이어서 HTTP로 띄운 서버를 Certbot을 통하여 HTTPS로 전환하여 보안을 강화하려한다
1. HTTPS 란
HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리는 HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있다.
2. certbot 설치
- Let's Encrypt라는 비영리 기관을 통해 무료로 TLS인증서를 발급받을 수 있다.
- certbot 이란 let's encrypt 인증서를 자동으로 발급/갱신해주는 봇(데몬) 이다.
- sudo apt install certbot
3. python3-certbox-nginx 설치
- certbot 및 nginx plugin 설치
- sudo apt install python3-certbox-nginx
4. sudo certbot certonly —nginx
- sudo certbot certonly —nginx
- 특정 도메인에 대한 SSL 발급이 가능하다.
5. Let's Encrypt로 부터 받은 SSL 암호화 키 파일
- /etc/letsencrypt/live/eattwogetter.shop/fullchain.pem
- /etc/letsencrypt/live/eattwogetter.shop/privkey.pem
- 위와 같은 경로에 접근하면 확인할 수 있다.
6. nginx sites-available 설정
- cd /etc/nginx/sites-available
- sudo vim sbb
server {
listen 80;
server_name 도메인네임;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443;
server_name 도메인네임;
ssl on;
ssl_certificate /etc/letsencrypt/live/도메인네임/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/도메인네임/privkey.pem; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 암호화 알고리즘
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
- ssl_ciphers에는 보안 통신 과정에서 사용할 암호화 알고리즘을 지정한다.
- SSL 이라고 해서 다 똑같은 암호화 알고리즘을 사용하는 것이 아니라, Client와의 협상(Negotiation)과정을 통해 적당한 수준의 암호화 알고리즘을 채택하게 된다.
7. AWS Lightsail 설정
- 네트워킹 탭에 IPv4 방화벽 규칙 추가
- HTTPS는 443번 포트에서 돌아가기 때문에 443포트를 뚫어주는 작업
8. 실행 결과
- https 위에서 내가 설정한 도메인이 잘 돌아가는 것을 확인할 수 있다.
참고 https://aws.amazon.com/ko/premiumsupport/knowledge-center/lightsail-install-certbot-package/
'IT' 카테고리의 다른 글
쿠키(Cookie)와 세션(Session) (1) | 2022.10.06 |
---|---|
AWS Lightsail (4) DB 생성(DB접속 및 WorkBench연결) (0) | 2022.10.03 |
AWS Lightsail (2) 도메인 연결(nginx 설정 및 도메인 연결) (1) | 2022.09.30 |
스프링부트 카카오 소셜 로그인 4(카카오 프로필 사진 활용) (1) | 2022.09.29 |
스프링부트 카카오 소셜 로그인 3(OAuth2User, OAuth2UserService) (1) | 2022.09.28 |