EC2 서버를 아마존 리눅스 2023으로 쓰는 중인데....
이게 가끔 설치를 할 때 오류가 생겨서 찾기가 힘들었다!!!!
일단 NGINX 설치 후 80 포트를 8080포트로 프록시한 후,
HTTPS 사용을 위해 "certbot"을 사용할 것이다
sudo dnf install -y python3 augeas-libs pip
Complete! 가 나오면 성공
sudo python3 -m venv /opt/certbot/
ls /opt/certbot
파일 및 폴더가 나와야 한다. 'bin' 폴더 내부에도 파일이 잘 다운 받아졌는지 확인한다.
ls /opt/certbot/bin
sudo /opt/certbot/bin/pip install --upgrade pip
Successfully installed....가 나오면 성공!
sudo /opt/certbot/bin/pip install certbot
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
여기까지 설치가 된 후에는 돌아가고 있던 톰캣을 잠시 정지한다.
sudo systemctl stop tomcat8
그리고는 인증서를 만들어 줍니다.
sudo certbot certonly --standalone
설치하다가 이메일 주소를 쓰라고 하는데 저는 개인 이메일을 적어주었습니다.
그 다음에 묻는 질문은 우리가 https를 적용할 도메인입니다. 잘 확인한 후 enter!
그 후 NGINX를 설치하고 편집한 문서를 다시 한 번 열어줍니다.
sudo vi /etc/nginx/nginx.conf
아까 편집한 "location / {" 윗 부분에
server_name ~.;
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/도메인/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/도메인/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
ssl_prefer_server_ciphers on;
를 추가합니다.
그 후 NGINX와 Tomcat을 재 실행 후 서버에 HTTPS가 잘 적용되는지 확인해주면 끝!!
도움 받은 블로그
https://www.zinnunkebi.com/amazon-linux-2023-lets-encrypt/
https://perfectacle.github.io/2017/10/05/letsencrypt-with-certbot-feat-aws/