Http->Https ,nginx, node.js, ubunt
Step 1
기본 서버 구축하기
AWS ec2
ubuntu
github
파일질라
Step2
HTTP->HTTPS
(feat. Let's Encrypt)
Certbot
최신 버전 저장소 사용
Certbot을 위한 repository 추가
$ sudo apt update
$ sudo apt upgrade
$ sudo add-apt-repository ppa:certbot/certbot
Certbot Nginx package install
$ sudo apt install python-certbot-nginx
Nginx Configuration
$ sudo vim /etc/nginx/sites-available/default
Nginx test
$ sudo nginx -t
Nginx reload
$ sudo systemctl reload nginx
$ sudo ufw status
방화벽 HTTPS 허용 (AWS EC2 인스턴스는 기본으로 방화벽 비활성화 되어있음)
Nginx Plugin을 통한 인증서 획득
$ sudo certbot --nginx -d _
("_"부분에 자신의 도메인을 적는다 도메인이 복수일 경우는 스페이스바 후 -d "_")
$ sudo service nginx restart
실행 과정중~
$ sudo certbot --nginx -d _ 에서 에러발생
이틀 동안 구글링 결과 실패 새로운 방법을 시도
AWS ec2 인스턴스를 종료시킨후 새로 시작하였음
$ sudo add-apt-repository ppa:certbot/certbot 과정에서 에러 발생
https://askubuntu.com/questions/1385440/ubuntu-sudo-apt-get-update-404-not-found-problem
$ sudo apt install python-certbot-nginx 과정에서 패키지가 제대로 설치되지 않음
--> sudo apt install python3-certbot-nginx 로 바꿔 해결
$ sudo vim /etc/nginx/sites-available/default
에서 sever_name 뒤 "_"부분만 나의 도메인으로 수정
vim 간단 명령어 : i // insert , esc // cancel , :w //save , :q //quit
$ sudo nginx -t
로 결과 확인
$ sudo systemctl reload nginx
리로드
$ sudo ufw status
방화벽 비활성화 확인
$ sudo certbot --nginx -d "_"
도메인 주소 입력 인증서 획득과정1. 이메일 입력 , 2.인증서 동의 3. 관련뉴스 동의1. 나의이메일2. A (agree)3. N (No)
다음 선택사항에서
- HTTP 연결을 HTTPS로 리다이렉트 하지 않음
- HTTP 연결을 HTTPS로 리다이렉트함
2번 선택
후 EC2 인바운드 규칙 편집 443,80 등 안열어준거 열어재끼기
추가로 다시 인스턴스를 새로 배포하여 다시하려니까
이러한 에러 문구가 뿜어져 나온적이 있다.
이때는 방화벽 비활성화(inactive) 되어있는지 확인 ( $ sudo ufw status ) 하고 뭔가 있으면
$ ufw delete rule_number // ex) ufw delete 1 , ufw delete 2
으로 지운다 그래도 안되면 거의 포트 포워딩 문제 일 가능성이 크다
(포트 포워딩 상태 확인)
(포트 포워딩 지정)
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
(포트 포워딩 취소)
$ sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
or
$ sudo iptables -t nat -D PREROUTING rule_number
//ex) sudo iptables -t nat -D PREROUTING 1
이렇게 해당 포트의 chain rule_number로 지울 수 있다.
(iptables help 명령어)
$ sudo iptables -h
포트 포워딩까지 지우고 다시
sudo certbot --nginx -d abcdefg.com -d www.abcdefg.com
그러면
성공!
$ sudo service nginx restart
모든 설정 완료후 재시작!!
proxy 설정은 아래 윤성님 블로그 참고!
이후 TEST
SSL Server Test (Powered by Qualys SSL Labs)
SSL Server Test This free online service performs a deep analysis of the configuration of any SSL web server on the public Internet. Please note that the information you submit here is used only to provide you the service. We don't use the domain names or
www.ssllabs.com
https://jminie.tistory.com/104
AWS Nginx에 HTTPS 적용하기 (Let's Encrypt)
이 포스팅은 앞 포스팅들에 이어지는 글이다. AWS에 Nginx, MySQL, PHP 구축 및 Nginx - PHP 연동 MySQL 외부 접속 - MySQL Workbench 사용 AWS에 PHPMyAdmin 설치하기 도메인 구입(가비아) 및 설정 📌 HTTP란? H..
jminie.tistory.com
여기 은사님 블로그를 알려주신 윤성님https://rmadbstjd.tistory.com/12 감사합니다