리눅스 명령어 모음
자바버전확인
java -version
OpenJDK설치
sudo apt update
sudo apt install openjdk-17-jdk -y
mysql설치
sudo apt update # (Ubuntu/Debian 계열)
sudo apt install mysql-server -y
톰켓 다운로드 및 설정
cd /opt
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.18/bin/apache-tomcat-10.1.18.tar.gz
sudo tar -xvzf apache-tomcat-10.1.18.tar.gz
sudo mv apache-tomcat-10.1.18 tomcat
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.39/bin/apache-tomcat-10.1.39.tar.gz
로 변경되었습니다. 위 경로는 없어짐.
톰켓 종료 실행 재실행
cd /usr/local/tomcat/bin (이동)
./shutdown.sh (종료)
./startup.sh (실행)
cd /usr/local/tomcat/bin (이동)
./shutdown.sh (종료)
./startup.sh (실행)
우분투에서 netstate설치
sudo apt update
sudo apt install net-tools -y
sudo apt update
sudo apt install net-tools -y
sudo netstat -tulnp | grep LISTEN (이것도 알아볼것)
현재 열려있는 방화벽 포트 확인
sudo ufw status
sudo ufw status
443포트 수동으로 방화벽 열어주기
sudo ufw allow 443/tcp (433포트 열기)
sudo ufw reload (방화벽 리로드)
sudo ufw enable (방화벽 활성화)
sudo ufw allow 443/tcp (433포트 열기)
sudo ufw reload (방화벽 리로드)
sudo ufw enable (방화벽 활성화)
도메인생성

도메인이란 사람이 이해하기 쉽게 ip를 연결시키는것이라고 보면 됩니다. 보통 사람들이 google을 ip쳐서 들어가는것이 아닌 google.com 으로 들어가면 컴퓨터는 google.com의 ip를 확인하고 브라우저로 연결시켜주게 됩니다.

google.com을 쳤을때 실제로 들어가는건 위 IP 입니다.
그래서 저희또한 google.com처럼 도메인을 사야하는데.. 일단 테스트 용도이니 돈투자가 아까운 사람들을 위해 무료 도메인인 duck dns를 사용하려고합니다.
duck dns에 GCP IP 연동하기
일단 Duck DNS로 가서 구글 ID로 로그인 하도록 합니다.
https://www.duckdns.org/

로그인 하면 사용법은 매우 간단합니다.
sub 도메인 항목에 원하는 도메인을 넣고 add domain을 클릭하면됩니다.

저는 일단 dalso.duckdns.org로 등록해보겠습니다.

그럼 위처럼 도메인이 등록되고 current ip를 선택하게 됩니다.
여기에 VM 인스턴스의 외부 IP를 입력해주고 update해줍니다.
이렇게 success가 뜨게되면 웹브라우저로 한번 접속해봅시다.
SSL 무료 인증서 발급 및 톰켓에 연동
무료로 HTTPS 적용하는 2가지 방법
1.Self-Signed SSL 인증서 (테스트용, 내부 사용)
- 직접 서버에서 SSL 인증서를 생성해서 HTTPS 활성화
- 단점: 브라우저에서 "보안 경고" 발생 (테스트용 추천)
2.Let's Encrypt SSL 인증서 (실제 서비스 추천) 🔥
- 무료 SSL 인증서 발급 (정식 인증, 브라우저에서 신뢰됨)
- 인증서 자동 갱신 가능
- 실제 서비스 운영 시 추천
필자는 2번째 방식을 사용하겠다..
2. Let's Encrypt SSL 적용 (무료 SSL, 추천)
Let's Encrypt는 무료 SSL 인증서를 제공하며, 브라우저에서 신뢰하는 인증서라 "보안 경고 없음"!
리눅스 서버에서 아래 명령어를 입력하여 certbot을 설치한다. 인증서 발급을 위한 도구이다.
Certbot 설치
sudo apt update
sudo apt install certbot -y
Let's Encrypt 인증서 발급
sudo certbot certonly --standalone -d yourdomain.com
✔ yourdomain.com → 실제 사용 중인 도메인 입력
✔ 인증서 경로: /etc/letsencrypt/live/yourdomain.com/ 경로에 SSL 인증서가 생성됨
Tomcat server.xml 설정
🔹 HTTPS 설정 수정
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateFile="/etc/letsencrypt/live/yourdomain.com/fullchain.pem" certificateKeyFile="/etc/letsencrypt/live/yourdomain.com/privkey.pem" type="RSA" />
</SSLHostConfig>
</Connector>
🔹 HTTP 요청을 HTTPS(443)로 리디렉트
Tomcat 재시작
sudo systemctl restart tomcat
./startup.sh
이제 https://yourdomain.com/ 으로 접속하면 HTTPS 적용됨!
무료 인증서라 브라우저에서 보안 경고 없음
보안 그룹(Security List)에서 443 포트 열기
🔹 Oracle Cloud에서 443(HTTPS) 포트가 열려 있어야 외부에서 접근 가능!
- OCI 콘솔 → Networking → Security List 이동
https://kwakscoding.tistory.com/65
Oracle cloud - 방화벽 허용 / 외부 접속 포트 설정
IntroCloud instance에 Web server나 api server를 띄워도 접속이 안될 때가 있다.이는 포트가 열려있지 않아 접근을 모두 차단하기 때문에 발생하는 현상인데, 외부에서 접근할 수 있도록 포트를 허용해보
kwakscoding.tistory.com
최종 정리 (무료 HTTPS 적용)
SSL인증서 발급 2가지
| Self-Signed SSL (테스트용) | 바로 가능 | 브라우저에서 보안 경고 발생 |
| Let's Encrypt (실제 서비스용🔥) | 무료, 자동 갱신 가능 | 도메인이 필요함 |
정리: SSL 인증서 발급 후 Tomcat에 적용하는 과정
단계설명
| 1. SSL 인증서 발급 | Self-Signed (테스트용) 또는 Let's Encrypt (운영용) |
| 2. Tomcat에 SSL 적용 | server.xml에서 HTTPS 설정 (443 포트 활성화) |
| 3. Tomcat 재시작 | HTTPS 적용 완료 |
| 4. 브라우저에서 HTTPS 테스트 | https://yourdomain.com/ 정상 동작 확인 |
1. 방화벽(ufw)에서 포트 443이 허용되어 있는지 확인
포트는 열려 있지만, 방화벽(UFW)이 HTTPS(443)를 차단하면 접속이 안 될 수 있음!
-현재 방화벽 상태 확인
sudo ufw status
출력 결과에서 443 ALLOW가 있어야 정상
-만약 443이 없으면 추가
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw enable
이제 HTTPS 트래픽이 차단되지 않음!
자.. 문제는 인증서 만료이다 6개월마다 재 갱신을 해줘야 한다는 단점이 있다. 무료인증서라 어쩔수없는듯?
그래서 리눅스의 crontab에 등록해서 자동 실행이 되도록 하였다. tomcat이 돌고있는동안은 인증서가 재발급되지 않는 현상이 발생하였다. 8080포트를 꺼줘야했다... 그래서 톰켓 종료 후 인증서 갱신 후 톰켓 재실행 하는 방식으로 crontab을 등록하였다. 아래는 방법이다.
certbot renew 실행할 때 Tomcat 자동 종료 후 다시 켜는 방법
현재 systemctl이 없으므로 Tomcat을 수동으로 관리해야 해.
그럼 자동화 스크립트에서 shutdown.sh와 startup.sh를 사용하도록 수정하면 된다.
Tomcat을 중지하고 SSL 인증서 갱신 후 다시 실행하는 스크립트
sudo nano /root/cert_renew.sh
아래 내용을 입력하고 저장 (CTRL + X → Y → ENTER):

#!/bin/bash echo "Stopping Tomcat..."
sudo /usr/local/tomcat/bin/shutdown.sh
sleep 5 # Tomcat이 완전히 종료될 시간을 주기 위해 잠시 대기
echo "Renewing SSL certificate..."
sudo certbot renew --standalone
echo "Starting Tomcat..."
sudo /usr/local/tomcat/bin/startup.sh
echo "SSL certificate renewal completed!"
설명
- shutdown.sh → Tomcat 중지
- sleep 5 → Tomcat 종료 대기 (필요한 경우 5초 이상으로 조정 가능)
- certbot renew --standalone → 인증서 갱신
- startup.sh → Tomcat 다시 실행
실행 권한 부여
sudo chmod +x /root/cert_renew.sh
crontab에 등록해서 자동 실행
sudo crontab -e
맨 아래에 다음 줄 추가:
0 3 * * * /root/cert_renew.sh >> /var/log/cert_renew.log 2>&1
설명:
- 0 3 * * * → 매일 새벽 3시에 실행
- /root/cert_renew.sh → 갱신 스크립트 실행
- >> /var/log/cert_renew.log 2>&1 → 실행 로그를 /var/log/cert_renew.log에 저장
확인 및 테스트
🔹 crontab이 정상 등록되었는지 확인
sudo crontab -l
🔹 수동으로 실행해서 잘 되는지 확인
sudo /root/cert_renew.sh
이제 이 방식으로 자동 갱신이 가능해짐.
'DevOps' 카테고리의 다른 글
| [nGrinder] nGrinder설치 및 성능테스트 부하 테스트 사용법 (spring boot , tomcat) (0) | 2025.03.05 |
|---|---|
| [Oracle cloud] 방화벽 허용 / 외부 접속 포트 설정 (0) | 2025.02.26 |
| [FileZilla] Putty PPK 파일 이용해서 로그인 하는 방법 (0) | 2025.02.25 |
| [NCP] 네이버클라우드서비스 HTTPS로 변경시 503오류 발생 (0) | 2024.08.05 |