Tomcat 웹 애플리케이션 보호하기

시작 동영상

▶️ YouTube

▶️ Bilibili

다운로드

https://protector4j.com/download에서 최신 버전을 다운로드하세요.

설치

Windows 및 Linux

특별한 설치 단계가 없으며, 아카이브를 다운로드하여 압축을 풀면 됩니다.

macOS

dmg 파일을 다운로드하고 Protector4J를 Applications로 드래그하세요. 이 도구의 실제 내용은 /Applications/Protector4J.app/Contents/protector4j-mac에 있습니다.

GUI 도구로 Tomcat 웹 애플리케이션 암호화하기

Protector4J 폴더로 이동하여 **p4j-ui[.exe]**를 실행하면 다음과 같은 사용자 인터페이스가 표시됩니다.

macOS 사용자의 경우, 일반적인 Mac 애플리케이션처럼 Protector4J.app을 더블 클릭하면 됩니다.

로그인

이미 라이선스를 구매한 경우, 오른쪽 상단의 로그인 버튼을 클릭하고 사용자 정보를 입력하세요. 라이선스가 없어도 이 도구를 체험할 수 있습니다.

애플리케이션 유형 선택

애플리케이션 유형 페이지에서 "Tomcat Web Application" 버튼을 클릭하세요.

암호화할 jar/war 파일 선택

암호화할 jar/war 파일을 선택합니다. 하나 또는 여러 파일을 선택할 수 있습니다.

옵션

jar 파일만 암호화

전체 JRE를 배포하지 않고 jar 파일만 암호화합니다. 이 옵션은 일반적으로 KeySeed 기능과 함께 사용하여 기존 프로그램을 업데이트합니다.

출력

Java 버전 선택

Java 버전을 선택합니다. Java 8, Java 11, Java 17 및 Java 21을 지원합니다.

새 폴더 생성

기본적으로 선택되어 있으며, 암호화 작업은 출력 폴더에 p4j-[task-id]라는 이름의 파일을 생성합니다. 출력 결과는 이 폴더에 저장됩니다.

KeySeed

암호화 작업은 기본적으로 서버에서 랜덤 키를 요청하여 암호화합니다. 서로 다른 암호화 작업에서 생성된 파일은 함께 사용할 수 없습니다. KeySeed가 지정되면 동일한 KeySeed는 동일한 암호화 키를 생성합니다. 이 옵션은 이전의 "jar 파일만 암호화" 옵션과 함께 사용하여 기존 애플리케이션을 업데이트할 수 있습니다. 이 옵션은 라이선스 사용자만 사용할 수 있습니다.

암호화 작업 실행

잠시 기다리면, 암호화 작업이 완료된 후 출력 폴더에서 암호화된 애플리케이션의 출력을 확인할 수 있습니다.

암호화된 애플리케이션 실행

출력 폴더로 이동한 다음 tomcat/bin으로 이동하여 startup.sh 또는 startup.bat을 실행하여 애플리케이션을 시작합니다.

META-INF/classes는 어디에 있나요?

webapps 폴더에서 애플리케이션을 찾을 수 있지만, 원본 WEB-INF/classes는 더 이상 존재하지 않습니다. 애플리케이션 구조를 보호하고 외부 사용자가 클래스 이름 및 기타 정보에 접근하지 못하도록, WEB-INF/classes를 WEB-INF/vlxapp.jar로 패키징했습니다. 이것은 우리의 전용 암호화된 jarx 형식입니다.

주의사항

이 프로그램의 대상 플랫폼이 macOS 또는 Linux이지만 Windows에서 빌드된 경우, 첫 번째 시작 전에 대상 플랫폼에서 add-executable-permission.sh를 실행하여 프로그램에 실행 권한을 부여하세요.

CLI 도구로 Tomcat 웹 애플리케이션 암호화하기

구성 파일

CLI 도구는 작업 파일을 매개변수로 지정해야 합니다.

protector4j/task-templates 폴더에서 tomcat-task.yml을 찾아 복사하고 수정합니다.

# Available values: 8,11,17,21
javaVersion: 8

# Available values: 9,10
tomcatVersion: 9

# The war files that need to be encrypted
warFiles: []
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, available values: [win, linux, mac] or emtpy for current platforms
# if you need the support for win32, linux32 and linux-aarch64, the addon need to be purchased, please visit https://protector4j.com/addons
platforms: []

암호화 작업 실행

Protector4J 폴더로 이동하여 다음 명령을 실행합니다.

Linux 또는 macOS

macOS 사용자의 경우, Protector4J.app/Contents/protector4j-mac에서 CLI 도구를 찾을 수 있습니다.

./p4j -t tomcat -f path-of-task-file

Windows

p4j -t tomcat -f path-of-task-file

p4j --help를 실행하여 자세한 매개변수를 확인할 수 있습니다.

계정 정보로 실행

./p4j -t tomcat -f path-of-task-file -u email -p password

결과 확인

암호화 작업이 완료된 후, 출력 폴더로 이동하여 결과를 확인하세요.

암호화된 애플리케이션 실행

출력 폴더로 이동한 다음 tomcat/bin으로 이동하여 startup.sh 또는 startup.bat을 실행하여 애플리케이션을 시작합니다.

META-INF/classes는 어디에 있나요?

webapps 폴더에서 애플리케이션을 찾을 수 있지만, 원본 WEB-INF/classes는 더 이상 존재하지 않습니다. 애플리케이션 구조를 보호하고 외부 사용자가 클래스 이름 및 기타 정보에 접근하지 못하도록, WEB-INF/classes를 WEB-INF/vlxapp.jar로 패키징했습니다. 이것은 우리의 전용 암호화된 jarx 형식입니다.

주의사항

이 프로그램의 대상 플랫폼이 macOS 또는 Linux이지만 Windows에서 빌드된 경우, 첫 번째 시작 전에 대상 플랫폼에서 add-executable-permission.sh를 실행하여 프로그램에 실행 권한을 부여하세요.