일단 처음에 특정 사이트 링크를 타고 들어갔는데 저렇게 뜨면 일단 불법 토토 사이트에 들어온 기분이 듦 ㄹㅇ.
정보가 탈취당할거같은 느낌이 온다.(진짜긴함)
1. http와 https
차이점 요약: HTTP와 HTTPS
HTTP | HTTPS | |
의미 | Hypertext Transfer Protocol | Hypertext Transfer Protocol Secure |
기본 프로토콜 | HTTP/1과 HTTP/2는 TCP/IP를 사용합니다. HTTP/3은 QUIC 프로토콜을 사용합니다. | HTTP 요청 및 응답을 추가로 암호화하기 위해 SSL/TLS와 함께 HTTP/2 사용 |
포트 | 기본 포트 80 | 기본 포트 443 |
용도 | 이전 텍스트 기반 웹 사이트 | 모든 최신 웹 사이트 |
보안 | 추가 보안 기능 없음 | 퍼블릭 키 암호화에 SSL 인증서 사용 |
이점 | 인터넷을 통한 통신 지원 | 웹 사이트에 대한 권위, 신뢰성 및 검색 엔진 순위 개선 |
http와 https의 차이가 궁금하다면 -> https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
HTTP와 HTTPS 비교 - 전송 프로토콜 간의 차이점 - AWS
1996~1997년에 출시된 최초의 HTTP 버전이 HTTP/1.1입니다. HTTP/2와 HTTP/3은 프로토콜 자체를 업그레이드한 버전입니다. 데이터 전송 시스템을 수정하면서 효율성을 개선했습니다. 예를 들어, HTTP/2는 텍
aws.amazon.com
본론으로 다시 서버에 nginx에서 SSL인증서를 등록 해 그것을 통해 우리의 브라우저가 http 통신이 아닌 https통신을 하고자 한다.
무료로 SSL 인증서를 쓰기 위해 letsencrypt에서 발급을 받을 수 있다.
(Let's Encrypt는 비영리 인터넷 보안 연구 그룹 (ISRG)에서 가져온 무료, 자동 및 공개 인증 기관입니다.)
2. CertBot
Certbot은 lets encrypt 인증서를 사용해 https 적용해주는 오픈 소스 툴이다.
우선 ubuntu가 아닌 서버 os는 amazon linux를 이용한다는 점 미리 알립니다.
1. 업데이트
$ yum update
2. Certbot 설치
$ sudo yum install certbot python3-certbot-nginx
3. 해당 도메인에 SSL 인증서 발급 받기
$ certbot certonly --nginx -d 도메인이름.com
--nginx : nginx 가 자동으로 해당 도메인에 인증서 등록함 .
ll /etc/letsencrypt/live/도메인이름.com 으로 들어가면 키들이 나오면 등록 성공이다.
4. Nginx 설정
설정은 conf.d 혹은 sites-avaliable 방식 두 가지가 있음. 이것은 구글 검색하면 많이 나온다.
5. 인증서 서버에 등록됐는지 확인
$ sudo certbot certificates
등록 되면 이렇게 뜸
6. nginx 재시작
sudo systemctl restart nginx
7. 본인 도메인 접속 후 적용 확인
3. 자동 재발급
하지만 let's Encrypt에서 발급 받은 SSL 인증서는 만료기간이 존재한다. 90일이다. 위의 그림에 VALID: 89 days라고 적혀있다.
그럼 서버 개발자가 달력에 90일을 계산해서 직접 ssh로 서버 들어가서 해야하는 끔찍한 짓을 해야하는가?
그 짓을 막기 위해 크론식으로 스케쥴링을 90일 이전에 새로 재발급 받게 설정 해둘 수 있다.
여기서 스케줄링이란 ?
스케줄링(Scheduling)
컴퓨팅에서 "스케줄링"은 작업을 수행하기 위해 자원을 할당하는 작업입니다. 여기서 자원은 processors, network links 또는 expansion cards가 될 수 있습니다.
(참고: Wikipedia)
- 스케줄링 작업은 스케줄러에 의해 수행됩니다.
스케줄러(Scheduler)
"스케줄러"는 다양한 방법을 통해 프로세스 스케줄링을 처리하는 특별한 목적의 시스템 소프트웨어입니다.
(참고: tutorialspoint)
- 스케줄러의 주요 업무는 시스템에 제출할 작업을 선택하고 실행할 프로세스를 결정하는 것입니다.
- 스케줄러는 장기 스케줄러/중기 스케줄러/단기 스케줄러 이렇게 총 3가지 유형으로 나뉩니다.
몬소리지 싶다. 쉽게 말하면 스케줄링 작업으로 명령어를 예약 할 수 있다.
스케줄링 작업 기간을 컴퓨터 OS에게 한국 말로 2달마다 갱신해줘라고 하고싶지만 얘는 바보라 못 알아먹는다.
그래서 크론탭으로 말을 해줘야한다.
크론탭이란 무엇입니까?
크론(Cron)은 시간을 뜻하는 그리스어 '크로노스(Chronos)'에서 따온 이름이다. 특정 일정에 따라 자동으로 작업을 수행하는 시스템 프로세스입니다. 정기적인 예약 작업을 실행하는 데 사용되는 명령 집합입니다. Crontab은 "cron 테이블"을 의미합니다. cron으로 알려진 작업 스케줄러를 사용하여 작업을 실행할 수 있습니다.
출처 : https://www.guru99.com/ko/crontab-in-linux-with-examples.html
Linux의 Crontab: 작업 스케줄링 예
크론탭이란 무엇입니까? 크론(Cron)은 시간을 뜻하는 그리스어 '크로노스(Chronos)'에서 따온 이름이다. 특정 일정에 따라 자동으로 작업을 수행하는 시스템 프로세스입니다. 이는 일련의 명령으로
www.guru99.com
- crontab에 자동 갱신 추가
1. 현재 설정된 crontab 내용 출력
# sudo crontab -l
2. 크론 탭 작성
sudo crontab -e
3. 스케줄링 주기 작성
0 0 1 */2 * /usr/bin/certbot renew --quiet --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
2달에 한번 1일날 SSL 인증서 재발급 하라는 크론식을 해둠.
크론식 만들어 주는 사이트 : http://www.cronmaker.com/?0
CronMaker
www.cronmaker.com
이런건 모르겠으면 gpt한테 물어봐도 괜찮다
'devOps' 카테고리의 다른 글
docker 로 Spring boot 프로젝트 EC2에 배포하기 (맥북 빌드 시 에러 해결) (0) | 2024.01.10 |
---|---|
[Jenkins] 다른 프로젝트에 의존성을 가진 프로젝트 자동 빌드 하기 (0) | 2023.09.26 |
Host key verification failed..(젠킨스 서버 이관 이후 빌드 반영 안될 때) (0) | 2023.08.28 |
(Ubuntu) AWS EC2 인스턴스 2개를 이용해 젠킨스 자동배포 (프리티어) (0) | 2023.08.10 |